Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.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
C# 如何在此处使用分组查询_C#_Sql Server 2005 - Fatal编程技术网

C# 如何在此处使用分组查询

C# 如何在此处使用分组查询,c#,sql-server-2005,C#,Sql Server 2005,我想输出如下 Id BatchName TblName SubBatchName Status 1 12032014 Tbl_12032014_raw2_1 raw2 Complete 2 12032014 Tbl_12032014_raw2_2 raw2 Complete 3 12182014 Tbl_12182014_raw3_1 raw3

我想输出如下

Id  BatchName      TblName           SubBatchName     Status
1   12032014    Tbl_12032014_raw2_1  raw2           Complete    
2   12032014    Tbl_12032014_raw2_2  raw2           Complete    
3   12182014    Tbl_12182014_raw3_1  raw3           Complete        
4   12182014    Tbl_12182014_raw3_2  raw3           Complete        
5   12182014    Tbl_12182014_raw4_1  raw4           Complete        
6   12182014    Tbl_12182014_raw4_2  raw4           Complete        
7   12062014    Tbl_12062014_raw5_1  raw5           Complete    
8   12062014    Tbl_12062014_raw5_2  raw5           Complete
9   12062014    Tbl_12062014_raw5_3  raw5           InComplete  
如果batchname的所有行都处于“完成”状态,则只有batchname获得选择


谢谢

按批次分组,只接受除完成之外没有其他状态的组

那么您想要所有状态都已完成的所有BatchName

您也可以使用“不存在”,而不是“分组依据”:


但这也会显示状态为空的批处理。
BatchName                                                                                 
--------------------
12032014  
12182014                                            
select batchname
from your_table
group by batchname
having sum(case when status <> 'Complete' or status is null
                then 1 
                else 0 
           end) = 0
SELECT DISTINCT t1.BatchName 
FROM dbo.TableName t1
WHERE t1.Status = 'Complete'
AND NOT EXISTS( SELECT 1 FROM dbo.TableName t2
                WHERE  t1.BatchName = t2.BatchName 
                 AND   ISNULL(t2.Status,'') <> 'Complete')