我有幾個表,我將它們連接在一起並從中選擇各種列和總和,並且我想結合select語句以便所有結果都在相同的結果集中。 我現在有喜歡的查詢:在同一個查詢結果集中使用不同where子句的多重總和
declare @year INT
declare @month INT
set @year = '2013'
set @month = '08'
select CAST(LEFT(b.name, 3) AS varchar(3))AS Region, a.model, sum(a.Number)AS Uniques
from Table1 a
inner join database2.....table2 b
on a.code = b.code
where Year(a.EventDate) = @year
and Month(a.EventDate) = @month
and a.make='Toyota'
group by CAST(LEFT(b.name, 3) AS varchar(3)), a.model
order by CAST(LEFT(b.name, 3) AS varchar(3))
這帶來了一個數據集,看起來是這樣的:
Region Model Uniques
EST Toyota 200
EST Honda 350
CEN Toyota 220
CEN VW 150
然後我有另一個類似的查詢,但使用不同的表和要求:
select CAST(LEFT(c.name, 3) AS varchar(3)) AS Region, a.Model, sum(b.Number)As Sales
from Table1 a
left join Table3 b
on a.leadid = b.leadid
inner join Database1..Table2 c
on a.code = c.code
where Year(a.EventDate) = @year
and Month(a.EventDate) = @month
and a.make='Toyota'
group by a.Model, CAST(LEFT(c.Name, 3) AS varchar(3))
order by CAST(LEFT(c.Name, 3) AS varchar(3))
這帶來了類似的結果集:
Region Model Sales
EST Toyota 150
CEN VW 80
CEN Toyota 75
我只想配對這些結果或進行連接查詢,這樣我就可以得到類似的結果;
Region Model Uniques Sales
EST Toyota 200 150
EST Honda 350 0
CEN Toyota 220 75
CEN vW 150 80
總共有20-30個地區/模型的組合,它們對於每個結果集都是相同的。
感謝這個答案完美的作品。我這樣做,然後從原始查詢中取出ORDER BY並獲得了我的結果集。 –
+1,但它可能需要'FULL JOIN'和NULL處理來獲得來自兩個子查詢的所有結果 – GarethD
是的,我只是做了LEFT OUTER JOIN而不是內部連接,然後在我的select語句中是:SELECT t1.region,t1。模型,t1.uniques,isnull(t2.sales,0)AS銷售 –