| Author |
Topic |
|
stewsterl
Starting Member
2 Posts |
Posted - 2009-10-15 : 16:28:02
|
| Please forgive my newbee SQL status.. I have the following database structure and data:CREATE TABLE CUSTOMER_ORDER(ROWID INT ,ID varchar(15) ,CUSTOMER_ID varchar(15),STATUS char(1),USER_1 varchar(80),USER_2 varchar(80))CREATE TABLE DEMAND_SUPPLY_LINK(ROWID INT ,SUPPLY_BASE_ID varchar(30),DEMAND_BASE_ID varchar(30))CREATE TABLE CUST_ORDER_LINE(ROWID INT ,LINE_NO smallint ,CUST_ORDER_ID varchar(15),PART_ID varchar(30) ,UNIT_PRICE decimal(15, 6),TRADE_DISC_PERCENT decimal(6, 3))CREATE TABLE PART(ROWID INT ,ID varchar(30),DESCRIPTION varchar(40),PRODUCT_CODE varchar(15),UNIT_PRICE decimal(15, 6))CREATE TABLE OPERATION(ROWID INT ,WORKORDER_BASE_ID varchar(30) ,SEQUENCE_NO smallint,STATUS CHAR(1))INSERT INTO CUSTOMER_ORDER VALUES (18847, 'CO23753','NOVAE','C','14X','STAT')INSERT INTO CUSTOMER_ORDER VALUES (31843, 'SS019712','NOVAE','C','14X','STAT')INSERT INTO CUSTOMER_ORDER VALUES (27387, 'S025894','NOVAE','C','15X','STATUS')INSERT INTO CUSTOMER_ORDER VALUES (27652, 'S026125','NOVAE','C','18X','STATS')INSERT INTO DEMAND_SUPPLY_LINK VALUES (23107, '28289', 'CO23753') INSERT INTO DEMAND_SUPPLY_LINK VALUES (34282, 'S019712', 'SS019712') INSERT INTO DEMAND_SUPPLY_LINK VALUES (30162, 'S025894', 'S025894') INSERT INTO DEMAND_SUPPLY_LINK VALUES (30539, 'S026125', 'S026125') INSERT INTO CUST_ORDER_LINE VALUES (52187, 1, 'CO23753', 'ST8220TAT-B-070', 2004.000000, 25.000 )INSERT INTO CUST_ORDER_LINE VALUES (82691, 1, 'SS019712', 'ST8218CHS-B-070', 904.000000, 25.000 )INSERT INTO CUST_ORDER_LINE VALUES (70936, 1, 'S025894', 'ST6210HSA-B', 3104.000000, 25.000 )INSERT INTO CUST_ORDER_LINE VALUES (71766, 1, 'S026125', 'ST7918TE-B-140', 1104.000000, 25.000 )INSERT INTO PART VALUES (1974,'ST8220TAT-B-070', '7 x 20 Tube Top Angle Tandem- Black 7K', 'TRAILER', 2700.000000)INSERT INTO PART VALUES (2903,'ST8218CHS-B-070', '7 x 18 Car Hauler Steel Deck 7K', 'TRAILER', 1700.000000) INSERT INTO PART VALUES (1625,'ST6210HSA-B', '5 x 10 Utility Angle High Side ', 'TRAILER', 1200.000000) INSERT INTO PART VALUES (3674,'ST7918TE-B-140', '7 x 18 14K Tilting Equipment Trailer', 'TRAILER', 4700.000000) INSERT INTO OPERATION VALUES (192987, '28289',20, 'C')INSERT INTO OPERATION VALUES (192988, '28289',30, 'C') INSERT INTO OPERATION VALUES (192990, '28289',60, 'C') INSERT INTO OPERATION VALUES (192991, '28289',70, 'C') INSERT INTO OPERATION VALUES (192992, '28289',80, 'C') INSERT INTO OPERATION VALUES (192994, '28289',100, 'C') INSERT INTO OPERATION VALUES (204531, 'S019712',10, 'C')INSERT INTO OPERATION VALUES (204532, 'S019712',20, 'f')INSERT INTO OPERATION VALUES (204534, 'S019712',34, 'C')INSERT INTO OPERATION VALUES (204538, 'S019712',70, 'f')INSERT INTO OPERATION VALUES (204542, 'S019712',150, 'f')INSERT INTO OPERATION VALUES (204539, 'S019712',80, 'C')INSERT INTO OPERATION VALUES (204541, 'S019712',41, 'f')INSERT INTO OPERATION VALUES (326611, 'S025894',10, 'f')INSERT INTO OPERATION VALUES (326612, 'S025894',11, 'f')INSERT INTO OPERATION VALUES (326613, 'S025894',20, 'C')INSERT INTO OPERATION VALUES (326614, 'S025894',45, 'f')INSERT INTO OPERATION VALUES (326615, 'S025894',36, 'f')INSERT INTO OPERATION VALUES (326616, 'S025894',81, 'C')INSERT INTO OPERATION VALUES (326617, 'S025894',40, 'f')INSERT INTO OPERATION VALUES (326618, 'S025894',12, 'f')INSERT INTO OPERATION VALUES (333850, 'S026125',12, 'f')INSERT INTO OPERATION VALUES (333851, 'S026125',11, 'f')INSERT INTO OPERATION VALUES (333852, 'S026125',20, 'f')INSERT INTO OPERATION VALUES (333853, 'S026125',30, 'f')INSERT INTO OPERATION VALUES (333854, 'S026125',25, 'f')INSERT INTO OPERATION VALUES (333855, 'S026125',40, 'f')INSERT INTO OPERATION VALUES (333856, 'S026125',60, 'C')I'm trying to return only the records IF OPERATION MAX(SEQUENCE_NO)'s = 'C'I tried the sugestion above but I'm getting an error that says everything could not be bound.This is the query I'm using.SELECT CUSTOMER_ORDER.ROWID, CUSTOMER_ORDER.ID, CUSTOMER_ORDER.CUSTOMER_ID, OPERATION.SEQUENCE_NO, OPERATION.STATUS, CUST_ORDER_LINE.LINE_NO, CUST_ORDER_LINE.PART_ID, CUST_ORDER_LINE.UNIT_PRICE, CUST_ORDER_LINE.TRADE_DISC_PERCENT, PART.DESCRIPTION, PART.PRODUCT_CODE, PART.UNIT_PRICE AS Expr1FROM(SELECT CUSTOMER_ORDER.ROWID, CUSTOMER_ORDER.ID, CUSTOMER_ORDER.CUSTOMER_ID, OPERATION.SEQUENCE_NO, OPERATION.STATUS, CUST_ORDER_LINE.LINE_NO, CUST_ORDER_LINE.PART_ID, CUST_ORDER_LINE.UNIT_PRICE, CUST_ORDER_LINE.TRADE_DISC_PERCENT, PART.DESCRIPTION, PART.PRODUCT_CODE, PART.UNIT_PRICE AS Expr1, ROW_NUMBER() OVER (ORDER BY OPERATION.SEQUENCE_NO desc) AS ROW_NOFROM PART INNER JOINCUST_ORDER_LINE ON PART.ID = CUST_ORDER_LINE.PART_ID CROSS JOINDEMAND_SUPPLY_LINK INNER JOINCUSTOMER_ORDER ON DEMAND_SUPPLY_LINK.DEMAND_BASE_ID = CUSTOMER_ORDER.ID INNER JOINOPERATION ON DEMAND_SUPPLY_LINK.SUPPLY_BASE_ID = OPERATION.WORKORDER_BASE_ID) T1WHERE Row_No = 1 AND STATUS = 'C' AND (CUSTOMER_ORDER.CUSTOMER_ID = 'Novae') AND (CUST_ORDER_LINE.LINE_NO = '1')Can someone help out this newbee. |
|
|
TG
Master Smack Fu Yak Hacker
6065 Posts |
Posted - 2009-10-15 : 16:57:16
|
Here is your statement with corrected syntax. However, there are no results based on your sample data and criteria. What is the expected results for this data?SELECT ROWID ,ID ,CUSTOMER_ID ,SEQUENCE_NO ,STATUS ,LINE_NO ,PART_ID ,UNIT_PRICE ,TRADE_DISC_PERCENT ,DESCRIPTION ,PRODUCT_CODE ,UNIT_PRICE AS Expr1FROM( SELECT co.ROWID ,co.ID ,co.CUSTOMER_ID ,o.SEQUENCE_NO ,o.STATUS ,col.LINE_NO ,col.PART_ID ,col.UNIT_PRICE ,col.TRADE_DISC_PERCENT ,PART.DESCRIPTION ,PART.PRODUCT_CODE ,PART.UNIT_PRICE AS Expr1 ,ROW_NUMBER() OVER (ORDER BY o.SEQUENCE_NO desc) AS ROW_NO FROM PART INNER JOIN CUST_ORDER_LINE col ON PART.ID = col.PART_ID CROSS JOIN DEMAND_SUPPLY_LINK dsl INNER JOIN CUSTOMER_ORDER co ON dsl.DEMAND_BASE_ID = co.ID INNER JOIN OPERATION o ON dsl.SUPPLY_BASE_ID = o.WORKORDER_BASE_ID ) T1WHERE Row_No = 1 AND STATUS = 'C' AND (CUSTOMER_ID = 'Novae') AND (LINE_NO = '1') EDIT:Just as a wild guess, try replacing the row_number line with this: ,ROW_NUMBER() OVER (partition by o.WORKORDER_BASE_ID order by o.SEQUENCE_NO desc) AS ROW_NO Be One with the OptimizerTG |
 |
|
|
|
|
|