| Author |
Topic |
|
barnabeck
Posting Yak Master
236 Posts |
Posted - 2012-07-10 : 11:37:36
|
I have 3 indipendent Queries that return for the 10 SalesUnits we have the figures for Budget, SalesOrder and Turnover. Each Query has a SUM aggregate function and is grouped by SalesUnit. How can I get these 3 Queries in one view? Like:SalesUnit|Budget|SalesOrder|Turnover|-------------------------------------Area 01 | xx1.x| yy1.yy | zz1.zz |Area 02 | xx2.x| yy2.yy | zz2.zz | . .Area 10 | x10.x| y10.yy | z10.zz | Budget:SELECT SalesUnit, SUM(Budget) From TableBudgetGROUP BY SalesUnitOrder By SalesUnit SalesOrder:SELECT SalesUnit, Sum(SalesOrder) From TableSalesOrderGROUP By SalesUnitOrder By SalesUnit Turnover:SELECT SalesUnit, Sum(Turnover) From TableTurnoverGROUP By SalesUnitOrder By SalesUnit Anyone can help me with this?Regards, Martin |
|
|
jleitao
Posting Yak Master
100 Posts |
Posted - 2012-07-10 : 11:41:57
|
| SELECT SalesUnit, SUM(Budget) as Value From TableBudgetGROUP BY SalesUnitUnion ALLSELECT SalesUnit, Sum(SalesOrder) as Value From TableSalesOrderGROUP By SalesUnitUnion allSELECT SalesUnit, Sum(Turnover) as Value From TableTurnoverGROUP By SalesUnitOrder By SalesUnit |
 |
|
|
singularity
Posting Yak Master
153 Posts |
Posted - 2012-07-10 : 11:43:10
|
| [code]SELECT a.SalesUnit, a.Budget, b.SalesOrder, c.TurnoverFROM(SELECT SalesUnit, SUM(Budget) as Budget From TableBudgetGROUP BY SalesUnitOrder By SalesUnit) aJOIN(SELECT SalesUnit, Sum(SalesOrder) as SalesOrder From TableSalesOrderGROUP By SalesUnitOrder By SalesUnit) b ON a.SalesUnit = b.SalesUnitJOIN(SELECT SalesUnit, Sum(Turnover) as Turnover From TableTurnoverGROUP By SalesUnitOrder By SalesUnit) c ON a.SalesUnit = c.SalesUnit[/code] |
 |
|
|
barnabeck
Posting Yak Master
236 Posts |
Posted - 2012-07-10 : 11:52:41
|
| jleitao, this would build a table with 2 columns and 30 rowssingularity: you can't order in that way. The query throws an error:The ORDER BY clause is invalid in views, inline functions, derived tables, subqueries, and common table expressions, unless TOP or FOR XML is also specifiedMartin |
 |
|
|
jleitao
Posting Yak Master
100 Posts |
Posted - 2012-07-10 : 11:53:54
|
| Singularity,That's right, you just can't use "order by" in subqueries ;)Put the order by at the end of the script |
 |
|
|
jleitao
Posting Yak Master
100 Posts |
Posted - 2012-07-10 : 11:56:20
|
| SELECT a.SalesUnit, a.Budget, b.SalesOrder, c.TurnoverFROM(SELECT SalesUnit, SUM(Budget) as Budget From TableBudgetGROUP BY SalesUnit) aJOIN(SELECT SalesUnit, Sum(SalesOrder) as SalesOrder From TableSalesOrderGROUP By SalesUnit) b ON a.SalesUnit = b.SalesUnitJOIN(SELECT SalesUnit, Sum(Turnover) as Turnover From TableTurnoverGROUP By SalesUnit) c ON a.SalesUnit = c.SalesUnitOrder By a.SalesUnit |
 |
|
|
barnabeck
Posting Yak Master
236 Posts |
Posted - 2012-07-10 : 12:00:25
|
| Yes, that works! Placing the order at the end does the trick!Thank you guys! |
 |
|
|
singularity
Posting Yak Master
153 Posts |
Posted - 2012-07-10 : 19:31:22
|
| Yeah, sorry I just copied the queries from the original post and forgot to take the ORDER BYs out. |
 |
|
|
|