【发布时间】:2013-12-30 02:29:15
【问题描述】:
我有几个表,我将它们连接在一起并从中选择各种列和总和,我想组合选择语句,以便所有结果都在同一个结果集中。 我目前有一个类似的查询:
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 个 Region/Model 组合,并且对于每个结果集都是相同的。
【问题讨论】:
标签: sql sql-server select inner-join