Sql 将用户和值列表聚合到包含用户列表和值计数的表中
我有一个有三列的用户表Sql 将用户和值列表聚合到包含用户列表和值计数的表中,sql,sql-server,Sql,Sql Server,我有一个有三列的用户表 Username Accepted Rejected User 1 1 NULL User 1 1 NULL User 1 NULL 1 User 2 1 1 User 3 1 NULL User 3 1 NULL User 2 NULL
Username Accepted Rejected
User 1 1 NULL
User 1 1 NULL
User 1 NULL 1
User 2 1 1
User 3 1 NULL
User 3 1 NULL
User 2 NULL 1
User 3 NULL NULL
User 2 NULL NULL
我想显示所有用户的列表,其中包含接受/拒绝列的计数,如下所示:
Username Accepted Rejected
User 1 2 1
User 2 1 2
User 3 2 NULL
最好的方法是什么 如果接受和拒绝,则只能使用sum,因为如果提供的所有值都为null,sum将返回null:
select UserName,
sum(Accepted) Accepted,
sum(Rejected) Rejected
from ATable
group by UserName
Count将在user3的拒绝列中返回零。SELECT
u、 用户名,
案例
当计数(u.接受)=0时,则为空
其他的
计数(美国接受)
以被接受的方式结束,
案例
当计数(u.拒绝)=0时,则为空
其他的
计数(美国拒绝)
以被拒绝告终
从…起
usr1 u
按u.username分组到目前为止,您尝试了什么?你看过COUNT()和SUM()的文档了吗?我试过使用CASE和GROUP BY,但还没有。尼古拉,你的解决方案看起来与我正在尝试的类似。看起来它能把我带到那里。计数可能更好,因为只有当接受和拒绝的值都不是0时,我才会在SSRS报告tablix中显示行。