如何组合两个SQL查询的结果?

如何组合两个SQL查询的结果?,sql,.net,Sql,.net,如何组合两个SQL查询的结果 第一个问题: 第二个问题 只要列数和类型数相同,UNION或UNION ALL就应该工作 Select T.NUM1 as NUM,T.AM1 as AM FROM ( Select Number AS NUM1,SUM(AMOUNT) As AM1 FROM TBLSALES WHERE NUMBER<20 GROUP BY NUMBER )T UNION SELECT B.NUM2 as NUM,B.AM2 as AM FROM ( S

如何组合两个SQL查询的结果

第一个问题:

第二个问题


只要列数和类型数相同,UNION或UNION ALL就应该工作

Select T.NUM1 as NUM,T.AM1 as AM
FROM
(
    Select Number AS NUM1,SUM(AMOUNT) As AM1 FROM TBLSALES WHERE NUMBER<20 GROUP BY NUMBER
)T

UNION

SELECT B.NUM2 as NUM,B.AM2 as AM
FROM
(
    SELECT Number AS NUM2,SUM(AMOUNT) As AM2 FROM TBLSALES WHERE NUMBER>19 AND NUMBER<40 GROUP BY NUMBER
)B

只要列数和类型数相同,UNION或UNION ALL就应该工作

Select T.NUM1 as NUM,T.AM1 as AM
FROM
(
    Select Number AS NUM1,SUM(AMOUNT) As AM1 FROM TBLSALES WHERE NUMBER<20 GROUP BY NUMBER
)T

UNION

SELECT B.NUM2 as NUM,B.AM2 as AM
FROM
(
    SELECT Number AS NUM2,SUM(AMOUNT) As AM2 FROM TBLSALES WHERE NUMBER>19 AND NUMBER<40 GROUP BY NUMBER
)B

可以使用UNION合并查询结果。
如果要避免重复记录,应使用UNION,如果不想排除重复的结果,则在这种情况下使用UNION ALL。

可以使用UNION合并查询结果。
如果要避免重复记录,则应使用UNION,如果不想排除重复的结果,则应在这种情况下使用UNION ALL。

使用UNION子句此处的示例在两个查询中都可以使用空字符串复制别名列名,union all和您将在输出中获得4列使用union子句示例此处两个查询中可能存在别名列名重复且字符串为空,union all和您将在输出中获得4列
Select T.NUM1 as NUM,T.AM1 as AM
FROM
(
    Select Number AS NUM1,SUM(AMOUNT) As AM1 FROM TBLSALES WHERE NUMBER<20 GROUP BY NUMBER
)T

UNION

SELECT B.NUM2 as NUM,B.AM2 as AM
FROM
(
    SELECT Number AS NUM2,SUM(AMOUNT) As AM2 FROM TBLSALES WHERE NUMBER>19 AND NUMBER<40 GROUP BY NUMBER
)B