我正在处理 Crystal Report,但无法找到在 Crystal 或 MSSQL 中执行此操作的方法
我有一个包含用户名的表格,当在如下网络应用程序中完成事件时会记录这些用户名
UID Approved Denied Moved Pended
1 Tom null null Bill
2 null null Bill null
3 Bill null Tom null
4 null Tom null null
5 Tom null Bill Bill
6 null Bill Bill null
7 Tom null null Bill
我需要生成如下生产力报告
Approved Denied Moved Pended
Tom 3 1 1 0
Bill 1 1 3 3
我不确定如何按数据中的名称对计数进行分组?
最佳答案
您还可以使用 pivot 和 unpivot 语法,如下所示: See working demo
select
Name,
[approved]=ISNULL([approved],0),
[denied]=ISNULL([denied],0),
[moved]=ISNULL([moved],0),
[pending]=ISNULL([pending],0)
from
(
select
Name,activity,count(1) c
from
(select * from useractivity )s
unpivot (Name for activity in ([approved],[denied],[moved],[pending]))up
group by Name,activity
) s
pivot (sum(c) for activity in ([approved],[denied],[moved],[pending]))p
关于sql - 如何在多列中计算一个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47704754/