微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SqlServer_select-多次sum查询结果合并;

=>背景介绍

->tableSales表


->第一次查询(2013销售员销售总额)

select salesName,sum(extendedPrice) as sumprice13 from tableSales where salesTime between '2013-01-01' and '2013-12-31' group by salesName


->第二次查询(2014销售员销售总额)

select  salesName,sum(extendedPrice) as sumprice14 from tableSales where salesTime between '2014-01-01' and '2014-12-31' group by salesName


->如何获得销售员13、14年的销售总额?

A、首先,我想到的就是用union all,但不理想;

select salesName,sum(extendedPrice) as sumprice13,null as sumprice14 from tableSales where salesTime between '2013-01-01' and '2013-12-31' group by salesName
union all
select  salesName,null as sumprice13,sum(extendedPrice) as sumprice14 from tableSales where salesTime between '2014-01-01' and '2014-12-31' group by salesName


B最后,通过fredrickhu版主大大的指点,修改如下:

SELECT
    a.salesName,a.sumprice13,b.sumprice14
FROM
    (SELECT
        salesName,SUM(extendedPrice) AS sumprice13
     FROM
        tableSales
     WHERE
        salesTime BETWEEN '2013-01-01' AND '2013-12-31'
     GROUP BY
        salesName
      ) AS a
INNER JOIN
     (SELECT
        salesName,SUM(extendedPrice) AS sumprice14
      FROM
        tableSales
      WHERE
        salesTime BETWEEN '2014-01-01' AND '2014-12-31'
      GROUP BY
        salesName
      ) AS b
ON a.salesName=b.salesName
 

最后再次感谢fredrickhu大大!谢谢!..风雨兼程...

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐