Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
| Author |
Topic |
|
alisag
Starting Member
5 Posts |
Posted - 2010-01-26 : 04:52:18
|
| I have 3 Tables- Transfer Line, Item Ledger Entry(Alias ILE) and Production Order Line(Alias POLine). I want all the records from transfer line table. The other 2 tables are related to Transfer line with Transfer Line.[Item No_] = ILE.[Item No_] Transfer Line.[Item No_] = POline.[Item No_].Now how to join the three tables. I wrote the following query but I m not getting the desired result for POLIne.Quantity. I have 30 records in transfer line table.SELECT [Transfer Line].[Document No_], [Transfer Line].[Transfer-from Code], [Transfer Line].[Item No_], [Transfer Line].Description, [Transfer Line].Quantity, SUM(ILE.Quantity) AS Inventory, SUM([Prod Order Lines].[Remaining Qty_ (Base)]) AS [Qty on Prod(Released)], SUM([Prod Order Lines2].[Remaining Quantity]) AS [Qty On Prod(Firm Planned)], [Transfer Line].[Transfer-to Code]FROM [Company$Item Ledger Entry] AS ILE RIGHT OUTER JOIN [Company$Transfer Line] AS [Transfer Line] LEFT OUTER JOIN [Company$Prod_ Order Line] AS [Prod Order Lines] ON [Transfer Line].[Item No_] = [Prod Order Lines].[Item No_] AND [Prod Order Lines].Status = 3 LEFT OUTER JOIN [Company$Prod_ Order Line] AS [Prod Order Lines2] ON [Transfer Line].[Item No_] = [Prod Order Lines2].[Item No_] AND [Prod Order Lines2].Status = 2 ON ILE.[Location Code] = [Transfer Line].[Transfer-from Code] AND ILE.[Item No_] = [Transfer Line].[Item No_]GROUP BY [Transfer Line].[Document No_], [Transfer Line].[Transfer-from Code], [Transfer Line].[Item No_], [Transfer Line].Description, [Transfer Line].Quantity, [Transfer Line].[Transfer-to Code]Transfer LineDocument No.No. Item Item DescriptionXYZ Item 1 First ItemXYZ Item 2 Second ItemABC Item 3 Third ItemABC Item 2 Second ItemPQR Item 1 First Item Item Ledger Entry As ILEEntry No. Item No. Quantity1 Item 1 42 Item 1 33 Item 2 54 Item 3 25 Item 2 26 Item 1 17 Item 3 108 Item 3 4 Prod. Order Line Prod Order No. Status item No. QuantityWO-111234 2 Item 1 100WO-111113 3 Item 3 50WO-111009 1 Item 2 100WO-111678 2 Item 1 195WO-111990 3 Item 1 200WO-187645 3 Item 1 120 The ILE, Prod Order Line are related to Transfer Line table with Item No_. Query should work like this.Get the first record from Transfer Line Table. Take the Item_No.(In this case it is Item 1) Go to ILE table with ILE.Item No_ = Transfer Line. Item No_sum of the quantity fields in ILE table based on this condition o Result Till here Document No. Item No. Inventory(sum of Quantity field in ILE) XYZ Item 1 8 now go to Prod. Order Line Sum up the quantities where Prod. Order Line.Item No. = Transfer Line.Item No. AND Prod. Order Line.Status = 3 o Result Till hereDocument No. Item No. Inventory(sum of Quantity field in ILE) Qty on Released Prod Order XYZ Item 1 8 320 Again go to Prod. Order Line Table Sum of the quantities Prod. Order Line.Item No. = Transfer Line.Item No. AND Prod. Order Line.Status = 2o Result Till hereDoc No. Item No. Qty(Sum of Qty filed in ILE) Qty on Prod Order Line(Status 3) Qty on Prod Order Line (Status 2) XYZ Item 1 8 320 295 So the final result should come like Doc No. Item No. Qty(Sum of Qty filed in ILE) Qty on Prod Order Line(Status 3) Qty on Prod Order Line (Status 2) XYZ Item 1 8 320 295 XYZ Item 2 7 0 0ABC Item 3 16 50 0ABC Item 2 7 0 0PQR Item 1 8 320 295 |
|
|
visakh16
Very Important crosS Applying yaK Herder
52326 Posts |
Posted - 2010-01-26 : 05:03:17
|
the query should beselect t1.[Document No.],t1.[Item No.],ile.TotalQty,pol.[TotalQtySt3],pol.[TotalQtySt2]from [Transfer Line] tlinner join (select [Item No.], SUM(Quantity) AS TotalQty from [Item Ledger Entry] group by [Item No.]) ileON ile.[Item No.] = t1.[No.Item]inner join (select [Item No.], SUM(case when Status=3 then Quantity else 0 end) AS [TotalQtySt3], SUM(case when Status=2 then Quantity else 0 end) AS [TotalQtySt2] from [Prod. Order Line] group by [Item No.])polon pol.[Item No.] = t1.[No.Item] |
 |
|
|
|
|
|
|
|