且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何在sql server 2008中的case语句中使用sum

更新时间:2021-10-30 22:30:01

这将工作



This will work

DECLARE @ClientDeployment AS TABLE (EmpCodeC NVARCHAR(30),Dated DATETIME,ShiftGroupC NVARCHAR(30))

DECLARE @Daily AS TABLE (ReaCodeC  NVARCHAR(30),ClockDateD DATETIME,ShiftGroupCodeC NVARCHAR(30),EmpCodeC NVARCHAR(30))



INSERT INTO @ClientDeployment (EmpCodeC,Dated,ShiftGroupC)
					  VALUES ('1288',GETDATE()-10,'Night')
INSERT INTO @ClientDeployment (EmpCodeC,Dated,ShiftGroupC)
					  VALUES ('1288',GETDATE()-9,'Night')
INSERT INTO @ClientDeployment (EmpCodeC,Dated,ShiftGroupC)
					  VALUES ('1288',GETDATE()-8,'Night')
INSERT INTO @ClientDeployment (EmpCodeC,Dated,ShiftGroupC)
					  VALUES ('1288',GETDATE()-7,'Night')
INSERT INTO @ClientDeployment (EmpCodeC,Dated,ShiftGroupC)
					  VALUES ('1288',GETDATE()-6,'Night')
INSERT INTO @ClientDeployment (EmpCodeC,Dated,ShiftGroupC)
					  VALUES ('1288',GETDATE()-5,'Night')
					  
					  
INSERT INTO @Daily (ReaCodeC,ClockDateD,ShiftGroupCodeC,EmpCodeC)		
    VALUES ('PRS',GETDATE()-10,'Night','1288')	 

					  
INSERT INTO @Daily (ReaCodeC,ClockDateD,ShiftGroupCodeC,EmpCodeC)		
    VALUES ('PRS',GETDATE()-9,'Night','1288')	
    
    
					  
INSERT INTO @Daily (ReaCodeC,ClockDateD,ShiftGroupCodeC,EmpCodeC)		
    VALUES ('PRS',GETDATE()-8,'Night','1288')	
    
    
 					  
INSERT INTO @Daily (ReaCodeC,ClockDateD,ShiftGroupCodeC,EmpCodeC)		
    VALUES ('PRS',GETDATE()-7,'Night','1288')	

					  
INSERT INTO @Daily (ReaCodeC,ClockDateD,ShiftGroupCodeC,EmpCodeC)		
    VALUES ('PRS',GETDATE()-6,'Night','1288')	
    
    					  
INSERT INTO @Daily (ReaCodeC,ClockDateD,ShiftGroupCodeC,EmpCodeC)		
    VALUES ('PRS',GETDATE()-5,'Night','1288')	
    
    					  
INSERT INTO @Daily (ReaCodeC,ClockDateD,ShiftGroupCodeC,EmpCodeC)		
    VALUES ('MRS',GETDATE()-10,'Night','1288')	 

					  
INSERT INTO @Daily (ReaCodeC,ClockDateD,ShiftGroupCodeC,EmpCodeC)		
    VALUES ('MRS',GETDATE()-9,'Night','1288')	
    
    
					  
INSERT INTO @Daily (ReaCodeC,ClockDateD,ShiftGroupCodeC,EmpCodeC)		
    VALUES ('MRS',GETDATE()-8,'Night','1288')	
    
    
 					  
INSERT INTO @Daily (ReaCodeC,ClockDateD,ShiftGroupCodeC,EmpCodeC)		
    VALUES ('MRS',GETDATE()-7,'Night','1288')	

					  



SELECT TOP 1 CASE WHEN(ReaCodeC IN ('PRS'))
                          THEN (SELECT COUNT(EmpCodeC) FROM @ClientDeployment 
								WHERE Dated BETWEEN '2015-05-20' AND '2015-05-30' AND ShiftGroupC='Night' AND EmpCodeC='1288')
								ELSE '0' END FROM @Daily 
WHERE ClockDateD BETWEEN '2015-05-20' AND '2015-05-30' AND ShiftGroupCodeC = 'Night' AND EmpCodeC IN ('1288')







Out put:



6




Out put :

6