sql - 使用数据透视表为以下输出创建查询

标签 sql sql-server sql-server-2012 sql-server-2014 sql-server-2016

我想根据以下要求将我的表格转为多列。

Employee_ID ProcessingMonth Amount      FinancialYear
3           April           41668.00    2017
3           June            41668.00    2017
3           March           41668.00    2017
3           May             41668.00    2017
4           April           10037.92    2017
4           June            10037.92    2017
4           March           10037.92    2017
4           May             10037.92    2017

我想要如下结果

Employee_ID year jan feb mar      apr      may      june     jul aug sep oct nov dec
3           2017 0   0   41668.00 41668.00 41668.00 41668.00 0   0   0   0   0   0
4           2017 0   0   10037.92 10037.92 10037.92 10037.92 0   0   0   0   0   0

最佳答案

试试这个:

SELECT *
FROM (
    SELECT 
          SUM(Amount) AS sum_amount
        , Employee_ID
        , FinancialYear
        , ProcessingMonth
    FROM your_table
    GROUP BY
          Employee_ID
        , FinancialYear
        , ProcessingMonth
) t
PIVOT (SUM(sum_amount)
    FOR ProcessingMonth IN ( 
        [January], [February], [March], [April], [May], [June], [July], [August], [September], [October], [November], [December])
    ) AS pvt;

关于sql - 使用数据透视表为以下输出创建查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50559011/

相关文章:

sql - 删除SQL Server数据库中的所有数据

SQL Server 维护计划历史记录检查成功或失败

sql - 无法从存储过程将数据插入临时表

sql - 不同where条件句的聚合函数

MySQL LEFT JOIN 重复结果

python - Django 插入数据文件位置

sql - 对于 MS SQL SERVER 中的每个?

SQL脚本太大,无法在SQL Server中打开

sql-server - 更新具有相同值的表会增加事务日志文件的大小吗?

带域用户的 sqlpackage.exe