合并两个或多个SELECT语句的输出

8
如何合并两个或多个SELECT语句的输出?我有多个表格,它们都有一些数据需要提取,所以我编写了多个SELECT查询。现在我想要合并这些查询的结果,我应该怎么做?我希望输出结果如下:
t1.qty,t2.qty,t3.qty 

你能展示一下你的查询吗?你期望的结果是什么? - Radu Gheorghiu
1
你看过 UNION 吗? - Hanky Panky
你是想将3个表连接在一起,还是合并具有相同列的3个结果集? - Adriaan Stander
@Ø Hanky Panky Ø .qty 看起来实际上像是一个 JOIN.. - Radu Gheorghiu
选择 t1.ks,t1.[# 任务],coalesce(t2.[# 迟到], 0) as [# 迟到] from (SELECT ks,COUNT() AS '# 任务' FROM 表 GROUP BY ks) t1 left join (SELECT ks,COUNT() AS '# 迟到' FROM 表 WHERE 年龄 > Palt GROUP BY ks) t2 on t1.ks = t2.ks 我正在使用这种类型的查询,它可以在两个连接级别上工作,但我需要使用超过两个级别。请建议类似于此的内容,以便我可以使用。 - user2485642
3个回答

22

一个选项是:

SELECT (SELECT SUM(qty) FROM Table1 WHERE ...),
       (SELECT SUM(qty) FROM Table2 WHERE ...),
       (SELECT SUM(qty) FROM Table3 WHERE ...)

如果有链接,另一个人也可以加入:

SELECT * 
FROM   (SELECT ID,SUM(qty) FROM Table1 GROUP BY ID) T1
       JOIN (SELECT ID,SUM(qty) FROM Table2 GROUP BY ID) T2
           ON T1.ID = T2.ID
       JOIN (SELECT ID,SUM(qty) FROM Table3 GROUP BY ID) T3
           ON T1.ID = T3.ID

上述选项将显示在一行中。

您可能需要使用联合来合并行:

SELECT qty FROM Table1
UNION
SELECT qty FROM Table2
UNION
SELECT qty FROM Table3

如果您定义更具体的需求,将会有更多的选项可供选择。


我需要用日期代替ID,这可能吗?如果可以的话,能否请您帮忙? - Vikram
@Vikram,我认为你应该稍微解释一下你的情况。 - Giannis Paraskevopoulos
我相信我的第二个示例(按日期合并分组结果)是您想要的。只需将id替换为日期列,qty替换为金额列。您将在日期列上进行连接。 - Giannis Paraskevopoulos
我正在使用Convert(nvarchar(15),date,103)函数,这样可以吗? - Vikram
我通常使用 convert(varchar(8),datefield,112) 将日期字段转换为 yyyymmdd 格式,然后可以将其强制转换为整数。 - Giannis Paraskevopoulos
显示剩余12条评论

3
为什么不创建一个语句,一次性获取它们所有的内容呢?
SELECT tableA.data1, tableB.data2 FROM tableA, tableB WHERE <condition here>

0

任务1 = "选择 top " & strmcount & " * from nregistration where " & strtotal1
任务2 = "选择 top " & strfcount & " * from nregistration where " & strtotal2

并行执行


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接