tracy5436
Yak Posting Veteran
50 Posts |
Posted - 2008-03-27 : 17:13:49
|
Hi,I am writing a query which uses joins but the results are not correct. I am pulling data from an item master table (IV00101 and Item_Mapping) and 2 transaction tables, (POP10500 and IV30300) which I have in separate sub-queries. The data from POP10500 is in subquery D3 and the data from IV30300 is in subquery D2. The problem is that when there is no data in IV30300, the query does not populate the fields from POP10500. I have tried using different joins but I still cannot get it o work. Can anyone help ?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 ,OpenQty ,OpeningBalValue ,ISNULL(RecQty,0.00) ,ISNULL(RecValue,0.00) ,0.00 ,0.00 ,0.00 ,0.00 ,ISNULL(AdjQty,0.00) ,ISNULL(AdjValue,0.00) ,AllocQty ,AllocValue ,ClosingQty ,ClosingValue FROM( SELECT LEFT(I3.LOCNCODE,6) as LocnCode ,LTRIM(STR(YEAR(GETDATE())) + REPLACE(STR(MONTH(GETDATE()), 2),' ', '0')) As ProcessDate ,I2.[CP PRODUCT CODE] as ProductCode ,SUM(I3.QTYONHND*I2.[UNITS/CASE]) As OpenQty ,SUM(I3.QTYONHND*I2.[UNITS/CASE]*I1.CURRCOST)/71.70 As OpeningBalValue ,SUM(I3.ATYALLOC*I2.[UNITS/CASE]) As AllocQty ,SUM(I3.ATYALLOC*I1.CURRCOST*I2.[UNITS/CASE])/71.70 As AllocValue ,SUM(I3.QTYONHND*I2.[UNITS/CASE]) As ClosingQty ,SUM(I3.QTYONHND*I2.[UNITS/CASE]*I1.CURRCOST)/71.70 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) )D1LEFT JOIN ( SELECT I6.[CP PRODUCT CODE] as ProductCode2 ,LTRIM(STR(YEAR(GETDATE())) + REPLACE(STR(MONTH(GETDATE()), 2),' ', '0')) As ProcessDate2 ,MONTH(I5.DOCDATE) as DocDate ,SUM(I5.TRXQTY*I6.[UNITS/CASE]) as AdjQty ,SUM(I5.EXTDCOST/71.70) as AdjValueFROM IV30300 I5INNER JOIN [ITEM_MAPPING] I6ON I6.[KIRK ITEM NUMBER] = I5.ITEMNMBRAND MONTH(I5.DOCDATE) = '2'GROUP BY I6.[CP PRODUCT CODE], MONTH(I5.DOCDATE))D2ON D1.ProductCode = D2.ProductCode2and D1.ProcessDate = D2.ProcessDate2 LEFT OUTER JOIN( SELECT I9.[CP PRODUCT CODE] as ProdCodeFROM [ITEM_MAPPING] I9JOIN IV30300 I10ON I9.[KIRK ITEM NUMBER] = I10.ITEMNMBRGROUP BY I9.[CP PRODUCT CODE])D4ON D2.ProductCode2 = D4.ProdCodeLEFT OUTER JOIN ( SELECT MONTH(P1.DATERECD) as RecDate ,I7.[CP PRODUCT CODE] as ProductCode2 ,P1.TRXLOCTN as Loc ,SUM(P1.QTYSHPPD * I7.[UNITS/CASE]) as RecQty ,SUM(P1.QTYSHPPD * I7.[CASE PRICE]) as RecValue FROM POP10500 P1INNER JOIN [ITEM_MAPPING] I7ON P1.ITEMNMBR = I7.[KIRK ITEM NUMBER]AND TRXLOCTN = 'MGD-MAIN'AND MONTH(P1.DATERECD) = '2'GROUP BY I7.[CP PRODUCT CODE], P1.TRXLOCTN, MONTH(P1.DATERECD))D3ON D4.ProdCode = D3.ProductCode2 |
|