SQL Server - 计算每个药房每个月的出境使用情况

时间:2014-08-26 19:54:33

标签: sql sql-server

我正在尝试编写一个查询,以便在每个月的数据库表中选择每个药房的总出站使用量。

这是我到目前为止所输出的正确数据。但我想消除选择的行数

select pharmacyid, count(*) as usage, month(datecalled) as month
from outboundcalldata
where datepart(year, datecalled) = 2014
group by pharmacyid, YEAR(DateCalled), month(datecalled)
order by pharmacyid, month

输出示例:

pharmacyid|usage| month
-----------------------
2220000006| 10  |  2
2220000006| 11  |  3
2220000006| 900 |  4
2220000006| 30  |  5
2220000007| 34  |  2
2220000007| 300 |  3
2220000007| 145 |  4

相反,我希望每个药房输出1行,每个月输出一列。

1 个答案:

答案 0 :(得分:1)

;WITH CTE AS
(
 select pharmacyid, count(*) as usage, month(datecalled) as [month]
 from outboundcalldata
 where datepart(year, datecalled) = 2014
 group by pharmacyid, YEAR(DateCalled), month(datecalled)
)
SELECT *
FROM CTE C
 PIVOT (SUM(usage)
        FOR [month]
        IN ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12])
        )p