sql - 两个 select 语句的求和结果

标签 sql sql-server sql-server-2008 tsql

我们的员工每周都会获得佣金,由于奖金结构,我必须计算单独两周的工资,然后将两者相加。

我有以下 SQL 语句,它获取两个单独星期的结果

    SELECT  PerceptionistID, SSNLastFour, CommissionPay,
        PTOPay, HolidayPay, Overtime, TotalPay
    FROM [dbo].fnCalculateCommissionForWeekOf(@MondayOfCurrentWeek)

    UNION

    -- Need to get the following week's data and sum the two together
    SELECT  PerceptionistID, SSNLastFour, CommissionPay,
        PTOPay, HolidayPay, Overtime, TotalPay
    FROM [dbo].fnCalculateCommissionForWeekOf(@MondayOfFollowingWeek)

这为我提供了所需的数据,但我想将两个结果合并到一个具有相同列的表中,但将一些列添加在一起(CommissionPay、PTOPay、HolidayPay、Overtime、TotalPay)。做这个的最好方式是什么?我使用的是 SQL Server 2008 R2。

最佳答案

试试这个

SELECT PerceptionistID, SSNLastFour, SUM(CommissionPay) CommissionPay,
        SUM(PTOPay) PTOPay, SUM(HolidayPay) HolidayPay, SUM(Overtime) Overtime, SUM(TotalPay) TotalPay
FROM
(
    SELECT  PerceptionistID, SSNLastFour, CommissionPay,
        PTOPay, HolidayPay, Overtime, TotalPay
    FROM [dbo].fnCalculateCommissionForWeekOf(@MondayOfCurrentWeek)

    UNION ALL

    -- Need to get the following week's data and sum the two together
    SELECT  PerceptionistID, SSNLastFour, CommissionPay,
        PTOPay, HolidayPay, Overtime, TotalPay
    FROM [dbo].fnCalculateCommissionForWeekOf(@MondayOfFollowingWeek)
) t
GROUP BY PerceptionistID, SSNLastFour

关于sql - 两个 select 语句的求和结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8647725/

相关文章:

日期范围查询的 SQL 索引

python - Azure 上使用 SQLAlchemy 的 MSSQL "connection reset by peer"

sql - 填充 SQL 查询结果集中缺失的(时间段)行

c# - 如何使用存储过程将当前日期插入表中?

sql-server - 获取 sql 作业代理作业的最后修改用户

php - SQL 查询 OR 和 AND

mysql - 在按周分组的 2 个日期之间在 MYSQL 中生成报告

.net - 是否可以在 TransactionScope 中执行 SQL 命令并发送 MSMQ 消息?

c# - '域名/机器名 $' being used for authentication instead of ' 域名/用户名'

sql - 构建查询的更好方法