

我有三个表格——表格1,表格2,表格3。全部这三个表格都包含有日常基本信息。我已经写了一些SQL语句,来概述分别基于不同表格的特定栏的表格信息。我是否能够写一个SQL语句,使得它能够分别在这三个表格中的每一个中作摘要,然后摘要信息可以被连接起来呢?这种SQL语句不应该创造出任何单独的摘要表格。
这个问题在2004年12月10日提出
为每一个查询使用一个派生表,并把他们在公用分组栏(common grouping column)连接在一起。举个例子,如果公用分组栏是userid,那么你应该这样使用:
select dt1.userid
, dt1.sumcol1 as table1_sumcol1
, dt2.sumcol1 as table2_sumcol1
, dt3.sumcol1 as table3_sumcol1
from (
select userid
, sum(col1) as sumcol1
from table1
group
by userid
) as dt1
inner
join (
select userid
, sum(col1) as sumcol1
from table2
group
by userid
) as dt2
on dt1.userid = dt2.userid
inner
join (
select userid
, sum(col1) as sumcol1
from table3
group
by userid
) as dt3
on dt1.userid = dt3.userid
请注意每个派生表格是怎样拥有一个别名的。此外,在外部选择列表中,注意来自不同牌证表格的栏的别名需要有所区别。