tracy5436
Yak Posting Veteran
50 Posts |
Posted - 2008-09-09 : 13:29:39
|
Hi,How do I reference a value in a sub-query ? I have written this query :INSERT INTO INVENTRY([STOCKLIST CODE], [WAREHOUSE CODE], [PROCESS YYYYMM], [INVENTORY TYPE], [PRODUCT CODE], [OPENING BALANCE QTY.], [OPENING BAL. VALUE],[RECEIPT QUANTITY],[RECEIPT VALUE],[FREE RECEIPT QUANTITY],[FREE RECEIPT VALUE],[RETURN QUANTITY],[RETURN VALUE],[ADJUSTMENT QUANTITY],[ADJUSTMENT VALUE],[ALLOCATED QUANTITY],[ALLOCATED VALUE],[CLOSING QUANTITY],[CLOSING VALUE])SELECT '5555550101' ,LocnCode ,ProcessDate ,'S' ,ProductCode ,ISNULL(OpenQty,0.00) ,ISNULL(OpeningBalValue,0.00) ,ISNULL(RecQty,0.00) ,ISNULL(RecValue,0.00) ,0.00 ,0.00 ,ISNULL(RetQty,0.00) ,ISNULL(RetValue,0.00) ,ISNULL(AdjQty,0.00) ,ISNULL(AdjValue,0.00) ,ISNULL(AllocQty,0.00) ,ISNULL(AllocValue,0.00) ,ISNULL(OpenQty,0.00)+ISNULL(RecQty,0.00)+ISNULL(RetQty,0.00)+ISNULL(AdjQty,0.00)-ISNULL(AllocQty,0.00) ,ISNULL(OpeningBalValue,0.00)+ISNULL(RecValue,0.00)+ISNULL(RetValue,0.00)+ISNULL(AdjValue,0.00)-ISNULL(AllocValue,0.00) FROM( SELECT LTRIM(STR(YEAR(I12.DOCDATE)) + REPLACE(STR(MONTH(I12.DOCDATE), 2),' ', '0')) As ProcessDate12 ,I11.[CP PRODUCT CODE] as ProductCode11 ,SUM(I12.TRXQTY*I11.[UNITS/CASE]*-1) as AllocQty ,SUM(I12.TRXQTY*I11.[UNITS/CASE]*I11.[UNIT PRICE]*-1) as AllocValueFROM IV30300 I12RIGHT OUTER JOIN [ITEM_MAPPING] I11ON I11.[KIRK ITEM NUMBER] = I12.ITEMNMBRand I12.DOCDATE BETWEEN '12/01/2007' AND '12/31/2007'AND I12.DOCTYPE = '6' GROUP BY I11.[CP PRODUCT CODE], LTRIM(STR(YEAR(I12.DOCDATE)) + REPLACE(STR(MONTH(I12.DOCDATE), 2),' ', '0')))D12RIGHT OUTER JOIN(SELECT LEFT(I3.LOCNCODE,6) as LocnCode ,'200712' As ProcessDate ,I2.[CP PRODUCT CODE] as ProductCode ,SUM(I3.QTYONHND*I2.[UNITS/CASE]) As ClosingQty1 ,SUM(I3.QTYONHND*I2.[UNITS/CASE]*I1.CURRCOST)/67 As ClosingValue FROM IV00101 I1 JOIN [ITEM_MAPPING] I2 ON I1.ITEMNMBR = I2.[KIRK ITEM NUMBER] JOIN IV00102 I3 ON I1.ITEMNMBR = I3.ITEMNMBR AND I3.LOCNCODE = 'MGD_MAIN' GROUP BY I2.[CP PRODUCT CODE], LEFT(I3.LOCNCODE,6) )D1ON D12.ProductCode11 = D1.ProductCode LEFT JOIN( SELECT B2.[CP PRODUCT CODE] as Item ,SUM(B1.[QTY PER STOCK]*B2.[UNITS/CASE]) as ClosingQty ,SUM(B1.[QTY PER STOCK]*B2.[UNITS/CASE]) as OpenQty ,SUM(B1.[CURRENT COST]*(B1.[QTY PER STOCK]*B2.[UNITS/CASE])) As OpeningBalValueFROM OPENINGBAL B1INNER JOIN [ITEM_MAPPING] B2ON B1.[ITEM NUMBER] = B2.[KIRK ITEM NUMBER]GROUP BY B2.[CP PRODUCT CODE])D13ON D1.ProductCode = D13.ItemLEFT JOIN ( SELECT I6.[CP PRODUCT CODE] as ProductCode2 ,LTRIM(STR(YEAR(I5.DOCDATE)) + REPLACE(STR(MONTH(I5.DOCDATE), 2),' ', '0')) As ProcessDate2 ,SUM(I5.TRXQTY*I6.[UNITS/CASE]) as AdjQty ,SUM(I6.[UNIT PRICE]*(I5.TRXQTY*I6.[UNITS/CASE])) as AdjValueFROM IV30300 I5RIGHT OUTER JOIN [ITEM_MAPPING] I6ON I6.[KIRK ITEM NUMBER] = I5.ITEMNMBRAND DOCTYPE = '1' AND DOCDATE BETWEEN '12/01/2007' AND '12/31/2007'or DOCTYPE = '2' AND DOCDATE BETWEEN '12/01/2007' AND '12/31/2007'GROUP BY I6.[CP PRODUCT CODE],LTRIM(STR(YEAR(I5.DOCDATE)) + REPLACE(STR(MONTH(I5.DOCDATE), 2),' ', '0')))D2ON D1.ProductCode = D2.ProductCode2and D1.ProcessDate = D2.ProcessDate2 LEFT OUTER JOIN( SELECT I9.[CP PRODUCT CODE] as ProdCodeFROM [ITEM_MAPPING] I9LEFT OUTER JOIN IV30300 I10ON I9.[KIRK ITEM NUMBER] = I10.ITEMNMBRGROUP BY I9.[CP PRODUCT CODE])D4ON D12.ProductCode11 = D4.ProdCodeLEFT OUTER JOIN ( SELECT LTRIM(STR(YEAR(P1.DOCDATE)) + REPLACE(STR(MONTH(P1.DOCDATE), 2),' ', '0')) as ProcessDate7 ,I7.[CP PRODUCT CODE] as ProductCode8 ,P1.TRXLOCTN as Loc ,SUM(P1.TRXQTY * I7.[UNITS/CASE]) as RecQty ,SUM(I7.[UNIT PRICE]*(P1.TRXQTY * I7.[UNITS/CASE])) as RecValue FROM IV30300 P1RIGHT OUTER JOIN [ITEM_MAPPING] I7ON P1.ITEMNMBR = I7.[KIRK ITEM NUMBER]AND P1.DOCTYPE = '4'AND TRXLOCTN = 'MGD_MAIN'AND P1.DOCDATE BETWEEN '12/01/2007' AND '12/31/2007'GROUP BY I7.[CP PRODUCT CODE], P1.TRXLOCTN, LTRIM(STR(YEAR(P1.DOCDATE)) + REPLACE(STR(MONTH(P1.DOCDATE), 2),' ', '0')))D3ON D4.ProdCode = D3.ProductCode8 LEFT OUTER JOIN( SELECT LTRIM(STR(YEAR(P10.DOCDATE)) + REPLACE(STR(MONTH(P10.DOCDATE), 2),' ', '0')) as ProcessDate7 ,I70.[CP PRODUCT CODE] as ProductCode10 ,P10.TRXLOCTN as Loc ,SUM(P10.TRXQTY * I70.[UNITS/CASE]) as RetQty ,SUM(I70.[UNIT PRICE]*(P10.TRXQTY * I70.[UNITS/CASE])) as RetValue FROM IV30300 P10RIGHT OUTER JOIN [ITEM_MAPPING] I70ON P10.ITEMNMBR = I70.[KIRK ITEM NUMBER]AND P10.DOCTYPE = '5'AND TRXLOCTN = 'MGD_MAIN'AND P10.DOCDATE BETWEEN '12/01/2007' AND '12/31/2007'GROUP BY I70.[CP PRODUCT CODE], P10.TRXLOCTN, LTRIM(STR(YEAR(P10.DOCDATE)) + REPLACE(STR(MONTH(P10.DOCDATE), 2),' ', '0')))D10ON D4.ProdCode = D10.ProductCode10 WHERE OpenQty > 0 or RetQty > 0 or AdjQty > 0 or RecQty > 0I would like to pass the value of RecQty which is in D3 to add it to my ClosingQty which is in D13. I have tried using D3.RecQty but I get an error saying that D3 is not properly defined. What is the proper syntax for this ?Thanks |
|