sqlserver分组后加条件

select * from WagesSalary_Month_User_Rate
 select  
	WW.RateRemake, --- 个人所得税税档
	sum(CASE WHEN WR.Remake is not null THEN 1 ELSE 0 END) as Counts ,---  
	sum(
		CASE WHEN MonthTime = '2019-11' THEN ISNULL(UserMonthWagesSalary_Old_YearCount,0) ELSE 0 END 
	 ),--累计收入额 =至本期年度工资总和
	sum( 
			CASE WHEN MonthTime = '2019-11' THEN ISNULL((Cumulative_Special + Cumulative_Special_add),0) ELSE 0 END 
	) ,--扣减费用(含保险)
	sum(
			CASE WHEN MonthTime = '2019-11' THEN  ISNULL(MonthWagesSalaryRate,0) ELSE 0 END  
	 ),--累计应纳税所得额
	sum( 
		CASE WHEN MonthTime = '2019-11' THEN  ISNULL(WR.WithholdingSalary ,0) ELSE 0 END  
	),--as 速算扣除数  
	sum( ISNULL(DeductionValue,0))--  应补(退)税款 = 工资表应纳税额
 from WagesSalary_Month_User_Rate WR    
	-- inner join SalaryBaseInfo base on WR.UserShowId = base.Id 
	 right join WagesSalary_Withholding_Rate WW on WW.RateRemake = WR.RateRemake  
	
	 group by WW.RateRemake 
	--  where WR.MonthTime = '2019-11'

我们的目的 想把个人所得税税率记录表的期数加上时间判断。

但是如果我们加载group by 上面  那么我们的档位就只有有数据的。

但是我们想要所有的,那么就把条件 加载case when 里面, 在sum 求和的时间在这里进行加上条件。这样就能达到我们的目的了。

sqlserver分组后加条件_第1张图片

sqlserver分组后加条件_第2张图片

你可能感兴趣的:(Sql)