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中显示行。