Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何在使用group by的单个查询中获得多个计数记录以及其他记录_Sql_Sql Server 2008 - Fatal编程技术网

Sql 如何在使用group by的单个查询中获得多个计数记录以及其他记录

Sql 如何在使用group by的单个查询中获得多个计数记录以及其他记录,sql,sql-server-2008,Sql,Sql Server 2008,我想在用户名条件下,从某个ftable中选择总数据、已完成数据和重命名数据,如果用户名存在,则视为已完成;如果用户名不存在,则视为剩余 ---------------------------------------- file_nm | degree_nm| date_nm | user_nm ---------------------------------------- X | D_x |02/05/2013| USER3 X | D_x |02

我想在用户名条件下,从某个ftable中选择总数据、已完成数据和重命名数据,如果用户名存在,则视为已完成;如果用户名不存在,则视为剩余

----------------------------------------
file_nm | degree_nm| date_nm  | user_nm
----------------------------------------
X       | D_x      |02/05/2013| USER3
X       | D_x      |02/05/2014| NULL
Y       | D_y      |02/05/2012| USER1
z       | D_z      |02/05/2015| NULL
Y       | D_y      |02/05/2013| USER1
z       | D_z      |02/05/2012| USER2
我想要文件,学位,日期,总计文件,剩余文件,完成

file total for x is 2 remaining for x is 1 completed file is 1
我在多个查询中得到了正确的值,但我希望这是一个整体

我要的付款交单

filenm,degree_name,date_name,total,remaining,completed
案件总数:

select filenm,
       degree_name,
       date_name, 
       COUNT(*) as total,
       sum(case when username is null then 1 else 0 end) as remaining,
       sum(case when username is not null then 1 else 0 end) as complete
from sameTable
group by filenm,degree_name,date_name
案件总数:

select filenm,
       degree_name,
       date_name, 
       COUNT(*) as total,
       sum(case when username is null then 1 else 0 end) as remaining,
       sum(case when username is not null then 1 else 0 end) as complete
from sameTable
group by filenm,degree_name,date_name

这不是你使用的方法,拥有,谢谢约翰注意到了这一点,不是我使用的原因:-)。我的错。这不是你使用的方法,拥有,谢谢约翰注意到了这一点,不是我使用的原因:-)。我的错。我的错。只是“,”在总数之后不见了,否则每件事都按我所希望的那样工作。谢谢你“,”在总数之后不见了,除此之外,一切都如我所愿。谢谢你的朋友,谢谢你的时间和努力。但我没有得到我想要的。剩余的每个文件我得到0,完成的文件得到0/1,顺便说一句,你的总数是正确的。感谢朋友为你付出的时间和努力。但是我没有得到我想要的。剩余的每个文件我得到0,完成的文件得到0/1,顺便说一句,你的总数是正确的。
select filenm
    ,degree_name
    ,date_name
    ,total = COUNT(*)
    ,remaining = COUNT(DISTINCT CASE WHEN username is null THEN username ELSE NULL END)
    ,completed = COUNT(DISTINCT CASE WHEN username is not null THEN username ELSE NULL END)
from sameTable
group by filenm,degree_name,date_name