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 |
|
dnagahawatte
Starting Member
24 Posts |
Posted - 2009-02-24 : 19:03:32
|
| I have three tablesProjects - (ProjectID)Orders - (ProjectID,OrderNumber, Value)OrderLookup - (OrderFrom,OrderTo)Example Data as followsProjects---------ProjectID12Orders---------ProjectID---OrderNumber---Value1-----------POR100--------20.001-----------POR101--------30.001-----------POR102--------35.001-----------POR103--------40.001-----------POR104--------28.001-----------POR105--------32.001-----------PIR101--------30.001-----------PIR102--------20.001-----------PIR103--------15.001-----------PIR104--------10.001-----------PIR105--------05.00OrderLookup-----------OrderFrom---OrderToPOR101------PIR101POR102------PIR102POR102------PIR103POR100------PIR104POR100------PIR105Projects - Project DetailsOrders - Orders(POR numbers) and Invoices(PIR Numbers)OrderLookup - (OrderFrom,OrderTo) Determins which Order links to which invoice. Some times their can be more than one invoice linked to one order number.result set should beProjectID / OrderLookup.OrderFrom (or Orders.OrderNumber only starts with POR)/Value (for POR)/sum(Value) of relavent PIR'sexample------1-----------POR100--------20.00----------15.001-----------POR101--------30.00----------30.001-----------POR102--------35.00----------35.001-----------POR103--------40.00----------NULL1-----------POR104--------28.00----------NULL1-----------POR105--------32.00----------NULLHow can i acheive this??.your help greatly appreciated.Thanks you in advance |
|
|
Mangal Pardeshi
Posting Yak Master
110 Posts |
Posted - 2009-02-25 : 01:02:52
|
Try this;WITH CTE AS(SELECT O.ProjectId, F.Orderfrom, F.OrderTo,O.ValueFROM Orders O JOIN OrderLookup FON O.OrderNumber = F.OrderToWHERE O.OrderNumber LIKE 'PIR%')SELECT O.ProjectId, O.OrderNumber, O.Value, SUM(C.Value)FROM Orders O LEFT JOIN CTE CON O.OrderNumber = C.OrderFromWHERE O.OrderNumber LIKE 'POR%'GROUP BY O.ProjectId, O.OrderNumber, O.Value Mangal Pardeshihttp://mangalpardeshi.blogspot.com |
 |
|
|
Nageswar9
Aged Yak Warrior
600 Posts |
Posted - 2009-02-25 : 01:53:00
|
Try this once,SELECT os.projectid,os.ordernumber,os.val,oo.val FROM @orders osLEFT JOIN (select OrderFrom,sum(val) AS val FROM @orderlookup ol INNER JOIN @orders o ON o.OrderNumber = ol.orderto GROUP BY OrderFrom ) oo ON oo.OrderFrom = os.OrdernumberWHERE os.ordernumber like '%por%' |
 |
|
|
sodeep
Master Smack Fu Yak Hacker
7174 Posts |
Posted - 2009-02-25 : 08:13:36
|
quote: Originally posted by Nageswar9 Try this once,SELECT os.projectid,os.ordernumber,os.val,oo.val FROM @orders os LEFT JOIN (select ol.OrderFrom,sum(o.val) AS val FROM @orderlookup ol INNER JOIN @orders o ON o.OrderNumber = ol.orderto GROUP BY ol.OrderFrom ) oo ON oo.OrderFrom = os.OrdernumberWHERE os.ordernumber like '%por%'
|
 |
|
|
dnagahawatte
Starting Member
24 Posts |
Posted - 2009-02-26 : 11:05:57
|
| Thanks you very much all of u, i got it working. |
 |
|
|
|
|
|
|
|