case when语句的运用

背景:根据数据表里的延期缴费开始时间及月数,将费用分摊在每个月上


--年份,月份,月数

   select  * ,  
       case  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+0,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+0,GETDATE()))  and  p.month>=1 then  p.money/p.month 
  else 0
  end as  mon0,




       case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+0,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+0,GETDATE()))  and  p.month>=2 then  p.money/p.month 
        else case when   Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+1,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+1,GETDATE())) and p.month>=1  then  p.money/p.month 
else 0 
end   end as  mon1,






  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+0,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+0,GETDATE()))  and  p.month>=3 then  p.money/p.month  
  else   case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+1,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+1,GETDATE()))  and  p.month>=2 then  p.money/p.month 
  else   case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+2,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+2,GETDATE()))  and  p.month>=1 then  p.money/p.month 
  else 0  end
  end   end as  mon2,




  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+0,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+0,GETDATE()))  and  p.month>=4 then  p.money/p.month  
  else case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+1,GETDATE()))  and datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+1,GETDATE()))  and  p.month>=3 then  p.money/p.month
   else case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+2,GETDATE()))  and datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+2,GETDATE()))  and  p.month>=2 then  p.money/p.month
   else case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+3,GETDATE()))  and datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+3,GETDATE()))  and  p.month>=1 then  p.money/p.month
  else 0 end  end end  end as  mon3,






       case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+0,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+0,GETDATE()))  and  p.month>=5 then  p.money/p.month    
  else case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+1,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+1,GETDATE()))  and  p.month>=4 then  p.money/p.month   
  else case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+2,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+2,GETDATE()))  and  p.month>=3 then  p.money/p.month   
  else case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+3,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+3,GETDATE()))  and  p.month>=2 then  p.money/p.month   
  else case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+4,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+4,GETDATE()))  and  p.month>=1 then  p.money/p.month   
  else 0 end    end  end end end as  mon4,






   case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+0,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+0,GETDATE()))  and  p.month>=6 then  p.money/p.month 
   else case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+1,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+1,GETDATE()))  and  p.month>=5 then  p.money/p.month 
   else case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+2,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+2,GETDATE()))  and  p.month>=4 then  p.money/p.month 
   else case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+3,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+3,GETDATE()))  and  p.month>=3 then  p.money/p.month 
   else case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+4,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+4,GETDATE()))  and  p.month>=2 then  p.money/p.month 
   else case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+5,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+5,GETDATE()))  and  p.month>=1 then  p.money/p.month 
   else 0  end end  end end
end end as  mon5,


  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+0,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+0,GETDATE()))  and  p.month>=7 then  p.money/p.month    
 else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+1,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+1,GETDATE()))  and  p.month>=6 then  p.money/p.month 
 else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+2,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+2,GETDATE()))  and  p.month>=5 then  p.money/p.month 
      else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+3,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+3,GETDATE()))  and  p.month>=4 then  p.money/p.month 
 else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+4,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+4,GETDATE()))  and  p.month>=3 then  p.money/p.month 
      else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+5,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+5,GETDATE()))  and  p.month>=2 then  p.money/p.month 
      else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+6,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+6,GETDATE()))  and  p.month>=1 then  p.money/p.month 
      else 0 end  end end  end  end  end  end  as  mon6,






       case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+0,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+0,GETDATE()))  and  p.month>=8 then  p.money/p.month    
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+1,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+1,GETDATE()))  and  p.month>=7 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+2,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+2,GETDATE()))  and  p.month>=6 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+3,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+3,GETDATE()))  and  p.month>=5 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+4,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+4,GETDATE()))  and  p.month>=4 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+5,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+5,GETDATE()))  and  p.month>=3 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+6,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+6,GETDATE()))  and  p.month>=2 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+7,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+7,GETDATE()))  and  p.month>=1 then  p.money/p.month  
  else 0 end  end end  end end  end end  end as  mon7,


  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+0,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+0,GETDATE()))  and  p.month>=9 then  p.money/p.month   
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+1,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+1,GETDATE()))  and  p.month>=8 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+2,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+2,GETDATE()))  and  p.month>=7 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+3,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+3,GETDATE()))  and  p.month>=6 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+4,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+4,GETDATE()))  and  p.month>=5 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+5,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+5,GETDATE()))  and  p.month>=4 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+6,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+6,GETDATE()))  and  p.month>=3 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+7,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+7,GETDATE()))  and  p.month>=2 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+8,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+8,GETDATE()))  and  p.month>=1 then  p.money/p.month  
   else 0 end end  end end  end end  end end  end as  mon8,


  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+0,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+0,GETDATE()))  and  p.month>=10 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+1,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+1,GETDATE()))  and  p.month>=9 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+2,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+2,GETDATE()))  and  p.month>=8 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+3,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+3,GETDATE()))  and  p.month>=7 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+4,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+4,GETDATE()))  and  p.month>=6 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+5,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+5,GETDATE()))  and  p.month>=5 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+6,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+6,GETDATE()))  and  p.month>=4 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+7,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+7,GETDATE()))  and  p.month>=3 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+8,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+8,GETDATE()))  and  p.month>=2 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+9,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+9,GETDATE()))  and  p.month>=1 then  p.money/p.month  

  else 0 end  end end  end end  end end  end end  end as  mon9,




       case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+0,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+0,GETDATE()))  and  p.month>=11 then  p.money/p.month 
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+1,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+1,GETDATE()))  and  p.month>=10 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+2,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+2,GETDATE()))  and  p.month>=9 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+3,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+3,GETDATE()))  and  p.month>=8 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+4,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+4,GETDATE()))  and  p.month>=7 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+5,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+5,GETDATE()))  and  p.month>=6 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+6,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+6,GETDATE()))  and  p.month>=5 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+7,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+7,GETDATE()))  and  p.month>=4 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+8,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+8,GETDATE()))  and  p.month>=3 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+9,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+9,GETDATE()))  and  p.month>=2 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+10,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+10,GETDATE()))  and  p.month>=1 then  p.money/p.month  
  else 0 end  end  end end  end end  end end  end end  end  as  mon10,


  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+0,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+0,GETDATE()))  and  p.month>=12 then  p.money/p.month 
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+1,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+1,GETDATE()))  and  p.month>=11 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+2,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+2,GETDATE()))  and  p.month>=10 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+3,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+3,GETDATE()))  and  p.month>=9 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+4,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+4,GETDATE()))  and  p.month>=8 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+5,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+5,GETDATE()))  and  p.month>=7 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+6,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+6,GETDATE()))  and  p.month>=6 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+7,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+7,GETDATE()))  and  p.month>=5 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+8,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+8,GETDATE()))  and  p.month>=4 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+9,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+9,GETDATE()))  and  p.month>=3 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+10,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+10,GETDATE()))  and  p.month>=2 then  p.money/p.month  
  else  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+11,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+11,GETDATE()))  and  p.month>=1 then  p.money/p.month  

  else  0  end end  end end  end end  end end  end end  end as  mon11
 

   from  Park_monthcard  p where  CreateTime  >='2018-05-24 00:00:00' and  PayStatus=1   --AND  carNo LIKE '%3F314%'   OR   carNo  LIKE '%D59D%'



由于case when 只能嵌套10层,故改进后:

--改进 case只能嵌套到10层
--年份,月份,月数
select  * ,  
       case  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+0,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+0,GETDATE()))  and  p.month>=1 then  p.money/p.month 
  else 0
  end as  mon0,




       case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+0,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+0,GETDATE()))  and  p.month>=2 then  p.money/p.month 
when   Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+1,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+1,GETDATE())) and p.month>=1  then  p.money/p.month 
   else 0 
end as  mon1,






  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+0,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+0,GETDATE()))  and  p.month>=3 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+1,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+1,GETDATE()))  and  p.month>=2 then  p.money/p.month 
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+2,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+2,GETDATE()))  and  p.month>=1 then  p.money/p.month 
   else 0  
   end   as  mon2,




  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+0,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+0,GETDATE()))  and  p.month>=4 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+1,GETDATE()))  and datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+1,GETDATE()))  and  p.month>=3 then  p.money/p.month
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+2,GETDATE()))  and datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+2,GETDATE()))  and  p.month>=2 then  p.money/p.month
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+3,GETDATE()))  and datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+3,GETDATE()))  and  p.month>=1 then  p.money/p.month
  
  else 0   end as  mon3,






       case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+0,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+0,GETDATE()))  and  p.month>=5 then  p.money/p.month    
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+1,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+1,GETDATE()))  and  p.month>=4 then  p.money/p.month   
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+2,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+2,GETDATE()))  and  p.month>=3 then  p.money/p.month   
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+3,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+3,GETDATE()))  and  p.month>=2 then  p.money/p.month   
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+4,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+4,GETDATE()))  and  p.month>=1 then  p.money/p.month   
  else 0 end  as  mon4,






   case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+0,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+0,GETDATE()))  and  p.month>=6 then  p.money/p.month 
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+1,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+1,GETDATE()))  and  p.month>=5 then  p.money/p.month 
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+2,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+2,GETDATE()))  and  p.month>=4 then  p.money/p.month 
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+3,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+3,GETDATE()))  and  p.month>=3 then  p.money/p.month 
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+4,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+4,GETDATE()))  and  p.month>=2 then  p.money/p.month 
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+5,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+5,GETDATE()))  and  p.month>=1 then  p.money/p.month 
   else 0  end as  mon5,


  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+0,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+0,GETDATE()))  and  p.month>=7 then  p.money/p.month    
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+1,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+1,GETDATE()))  and  p.month>=6 then  p.money/p.month 
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+2,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+2,GETDATE()))  and  p.month>=5 then  p.money/p.month 
       when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+3,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+3,GETDATE()))  and  p.month>=4 then  p.money/p.month 
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+4,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+4,GETDATE()))  and  p.month>=3 then  p.money/p.month 
       when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+5,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+5,GETDATE()))  and  p.month>=2 then  p.money/p.month 
       when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+6,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+6,GETDATE()))  and  p.month>=1 then  p.money/p.month 
      else 0  end  as  mon6,






       case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+0,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+0,GETDATE()))  and  p.month>=8 then  p.money/p.month    
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+1,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+1,GETDATE()))  and  p.month>=7 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+2,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+2,GETDATE()))  and  p.month>=6 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+3,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+3,GETDATE()))  and  p.month>=5 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+4,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+4,GETDATE()))  and  p.month>=4 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+5,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+5,GETDATE()))  and  p.month>=3 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+6,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+6,GETDATE()))  and  p.month>=2 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+7,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+7,GETDATE()))  and  p.month>=1 then  p.money/p.month  
  else 0 end  as  mon7,


  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+0,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+0,GETDATE()))  and  p.month>=9 then  p.money/p.month   
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+1,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+1,GETDATE()))  and  p.month>=8 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+2,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+2,GETDATE()))  and  p.month>=7 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+3,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+3,GETDATE()))  and  p.month>=6 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+4,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+4,GETDATE()))  and  p.month>=5 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+5,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+5,GETDATE()))  and  p.month>=4 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+6,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+6,GETDATE()))  and  p.month>=3 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+7,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+7,GETDATE()))  and  p.month>=2 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+8,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+8,GETDATE()))  and  p.month>=1 then  p.money/p.month  
   else 0  end as  mon8,


  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+0,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+0,GETDATE()))  and  p.month>=10 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+1,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+1,GETDATE()))  and  p.month>=9 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+2,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+2,GETDATE()))  and  p.month>=8 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+3,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+3,GETDATE()))  and  p.month>=7 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+4,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+4,GETDATE()))  and  p.month>=6 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+5,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+5,GETDATE()))  and  p.month>=5 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+6,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+6,GETDATE()))  and  p.month>=4 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+7,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+7,GETDATE()))  and  p.month>=3 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+8,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+8,GETDATE()))  and  p.month>=2 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+9,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+9,GETDATE()))  and  p.month>=1 then  p.money/p.month  

  else 0 end   as  mon9,




       case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+0,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+0,GETDATE()))  and  p.month>=11 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+1,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+1,GETDATE()))  and  p.month>=10 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+2,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+2,GETDATE()))  and  p.month>=9 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+3,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+3,GETDATE()))  and  p.month>=8 then  p.money/p.month 
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+4,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+4,GETDATE()))  and  p.month>=7 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+5,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+5,GETDATE()))  and  p.month>=6 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+6,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+6,GETDATE()))  and  p.month>=5 then  p.money/p.month 
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+7,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+7,GETDATE()))  and  p.month>=4 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+8,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+8,GETDATE()))  and  p.month>=3 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+9,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+9,GETDATE()))  and  p.month>=2 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+10,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+10,GETDATE()))  and  p.month>=1 then  p.money/p.month  
  else 0 end  as  mon10,


  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+0,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+0,GETDATE()))  and  p.month>=12 then  p.money/p.month 
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+1,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+1,GETDATE()))  and  p.month>=11 then  p.money/p.month 
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+2,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+2,GETDATE()))  and  p.month>=10 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+3,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+3,GETDATE()))  and  p.month>=9 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+4,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+4,GETDATE()))  and  p.month>=8 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+5,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+5,GETDATE()))  and  p.month>=7 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+6,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+6,GETDATE()))  and  p.month>=6 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+7,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+7,GETDATE()))  and  p.month>=5 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+8,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+8,GETDATE()))  and  p.month>=4 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+9,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+9,GETDATE()))  and  p.month>=3 then  p.money/p.month 
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+10,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+10,GETDATE()))  and  p.month>=2 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+11,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+11,GETDATE()))  and  p.month>=1 then  p.money/p.month 
  else  0 end as  mon11


  from  Park_monthcard  p where  CreateTime  >='2018-05-24 00:00:00' and  PayStatus=1 



最后的语句:

select  S.RealName,S.PropertyName,case when S.BuildingName is not null  then  S.BuildingName  else '暂无' end as  BuildingName,case when S.RoomNo is not null then S.RoomNo else '暂无' end as RoomNo,S.parkUserID,S.carNo,
 sum(S.mon0) as  mon0,sum(S.mon1) as  mon1,sum(S.mon2) as  mon2,sum(S.mon3) as  mon3,sum(S.mon4) as  mon4,sum(S.mon5) as  mon5,sum(S.mon6) as  mon6
 ,sum(S.mon7) as  mon7,sum(S.mon8) as  mon8,sum(S.mon9) as  mon9,sum(S.mon10) as  mon10,sum(S.mon11) as  mon11,sum(S.mon12) as  mon12
 ,sum(S.monf1) as  monf1,sum(S.monf2) as  monf2,sum(S.monf3) as  monf3,sum(S.monf4) as  monf4,sum(S.monf5) as  monf5,sum(S.monf6) as  monf6
 ,sum(S.monf7) as  monf7,sum(S.monf8) as  monf8,sum(S.monf9) as  monf9,sum(S.monf10) as  monf10,sum(S.monf11) as  monf11,sum(S.monf12) as  monf12
from (
select  p.carNo as  carNo,p.parkUserID  as parkUserID,tu.LoginName as  LoginName,tu.RealName as RealName,tp.PropertyId as PropertyId,tp.PropertyName as PropertyName,tb.BuildingId as  BuildingId,tb.BuildingName as BuildingName,tr.RoomId as  RoomId ,tr.RoomNo as RoomNo ,tr.Apply as Apply,
case  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-12,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-12,GETDATE()))  and  p.month>=1 then  p.money/p.month 
    else 0 end as  monf12,
case  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-11,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-11,GETDATE()))  and  p.month>=1 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-12,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-12,GETDATE()))  and  p.month>=2 then  p.money/p.month 
    else 0 end as  monf11,
case  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-10,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-10,GETDATE()))  and  p.month>=1 then  p.money/p.month  
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-11,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-11,GETDATE()))  and  p.month>=2 then  p.money/p.month
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-12,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-12,GETDATE()))  and  p.month>=3 then  p.money/p.month 
    else 0 end as  monf10,
case  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-9,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-9,GETDATE()))  and  p.month>=1 then  p.money/p.month  
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-10,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-10,GETDATE()))  and  p.month>=2 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-11,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-11,GETDATE()))  and  p.month>=3 then  p.money/p.month
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-12,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-12,GETDATE()))  and  p.month>=4 then  p.money/p.month 
    else 0 end as  monf9,
case  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-8,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-8,GETDATE()))  and  p.month>=1 then  p.money/p.month  
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-9,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-9,GETDATE()))  and  p.month>=2 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-10,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-10,GETDATE()))  and  p.month>=3 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-11,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-11,GETDATE()))  and  p.month>=4 then  p.money/p.month
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-12,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-12,GETDATE()))  and  p.month>=5 then  p.money/p.month 
    else 0  end as  monf8, 
case  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-7,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-7,GETDATE()))  and  p.month>=1 then  p.money/p.month  
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-8,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-8,GETDATE()))  and  p.month>=2 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-9,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-9,GETDATE()))  and  p.month>=3 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-10,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-10,GETDATE()))  and  p.month>=4 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-11,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-11,GETDATE()))  and  p.month>=5 then  p.money/p.month
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-12,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-12,GETDATE()))  and  p.month>=6 then  p.money/p.month 
    else 0 end as  monf7,
case  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-6,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-6,GETDATE()))  and  p.month>=1 then  p.money/p.month  
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-7,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-7,GETDATE()))  and  p.month>=2 then  p.money/p.month
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-8,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-8,GETDATE()))  and  p.month>=3 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-9,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-9,GETDATE()))  and  p.month>=4 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-10,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-10,GETDATE()))  and  p.month>=5 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-11,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-11,GETDATE()))  and  p.month>=6 then  p.money/p.month
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-12,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-12,GETDATE()))  and  p.month>=7 then  p.money/p.month 
    else 0   end as  monf6,
case  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-5,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-5,GETDATE()))  and  p.month>=1 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-6,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-6,GETDATE()))  and  p.month>=2 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-7,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-7,GETDATE()))  and  p.month>=3 then  p.money/p.month
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-8,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-8,GETDATE()))  and  p.month>=4 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-9,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-9,GETDATE()))  and  p.month>=5 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-10,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-10,GETDATE()))  and  p.month>=6 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-11,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-11,GETDATE()))  and  p.month>=7 then  p.money/p.month
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-12,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-12,GETDATE()))  and  p.month>=8 then  p.money/p.month 
    else 0  end as  monf5,


case  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-4,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-4,GETDATE()))  and  p.month>=1 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-5,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-5,GETDATE()))  and  p.month>=2 then  p.money/p.month
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-6,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-6,GETDATE()))  and  p.month>=3 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-7,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-7,GETDATE()))  and  p.month>=4 then  p.money/p.month
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-8,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-8,GETDATE()))  and  p.month>=5 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-9,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-9,GETDATE()))  and  p.month>=6 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-10,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-10,GETDATE()))  and  p.month>=7 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-11,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-11,GETDATE()))  and  p.month>=8 then  p.money/p.month
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-12,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-12,GETDATE()))  and  p.month>=9 then  p.money/p.month 
    else 0  end as  monf4,


case  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-3,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-3,GETDATE()))  and  p.month>=1 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-4,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-4,GETDATE()))  and  p.month>=2 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-5,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-5,GETDATE()))  and  p.month>=3 then  p.money/p.month
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-6,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-6,GETDATE()))  and  p.month>=4 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-7,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-7,GETDATE()))  and  p.month>=5 then  p.money/p.month
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-8,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-8,GETDATE()))  and  p.month>=6 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-9,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-9,GETDATE()))  and  p.month>=7 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-10,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-10,GETDATE()))  and  p.month>=8 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-11,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-11,GETDATE()))  and  p.month>=9 then  p.money/p.month
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-12,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-12,GETDATE()))  and  p.month>=10 then  p.money/p.month 
    else 0  end as  monf3,
 
case  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-2,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-2,GETDATE()))  and  p.month>=1 then  p.money/p.month 
    when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-3,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-3,GETDATE()))  and  p.month>=2 then  p.money/p.month 
    when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-4,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-4,GETDATE()))  and  p.month>=3 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-5,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-5,GETDATE()))  and  p.month>=4 then  p.money/p.month
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-6,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-6,GETDATE()))  and  p.month>=5 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-7,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-7,GETDATE()))  and  p.month>=6 then  p.money/p.month
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-8,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-8,GETDATE()))  and  p.month>=7 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-9,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-9,GETDATE()))  and  p.month>=8 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-10,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-10,GETDATE()))  and  p.month>=9 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-11,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-11,GETDATE()))  and  p.month>=10 then  p.money/p.month
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-12,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-12,GETDATE()))  and  p.month>=11 then  p.money/p.month 
    else 0 end as  monf2,


case  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-1,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-1,GETDATE()))  and  p.month>=1 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-2,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-2,GETDATE()))  and  p.month>=2 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-3,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-3,GETDATE()))  and  p.month>=3 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-4,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-4,GETDATE()))  and  p.month>=4 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-5,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-5,GETDATE()))  and  p.month>=5 then  p.money/p.month
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-6,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-6,GETDATE()))  and  p.month>=6 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-7,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-7,GETDATE()))  and  p.month>=7 then  p.money/p.month
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-8,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-8,GETDATE()))  and  p.month>=8 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-9,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-9,GETDATE()))  and  p.month>=9 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-10,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-10,GETDATE()))  and  p.month>=10 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-11,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-11,GETDATE()))  and  p.month>=11 then  p.money/p.month
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-12,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-12,GETDATE()))  and  p.month>=12 then  p.money/p.month 
    else 0  end as  monf1,

       case  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+0,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+0,GETDATE()))  and  p.month>=1 then  p.money/p.month 
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-1,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-1,GETDATE()))  and  p.month>=2 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-2,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-2,GETDATE()))  and  p.month>=3 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-3,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-3,GETDATE()))  and  p.month>=4 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-4,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-4,GETDATE()))  and  p.month>=5 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-5,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-5,GETDATE()))  and  p.month>=6 then  p.money/p.month
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-6,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-6,GETDATE()))  and  p.month>=7 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-7,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-7,GETDATE()))  and  p.month>=8 then  p.money/p.month
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-8,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-8,GETDATE()))  and  p.month>=9 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-9,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-9,GETDATE()))  and  p.month>=10 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-10,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-10,GETDATE()))  and  p.month>=11 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-11,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-11,GETDATE()))  and  p.month>=12 then  p.money/p.month
  else 0 end as  mon0,




        case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+0,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+0,GETDATE()))  and  p.month>=2 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-1,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-1,GETDATE()))  and  p.month>=3 then  p.money/p.month
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-2,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-2,GETDATE()))  and  p.month>=4 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-3,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-3,GETDATE()))  and  p.month>=5 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-4,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-4,GETDATE()))  and  p.month>=6 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-5,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-5,GETDATE()))  and  p.month>=7 then  p.money/p.month
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-6,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-6,GETDATE()))  and  p.month>=8 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-7,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-7,GETDATE()))  and  p.month>=9 then  p.money/p.month
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-8,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-8,GETDATE()))  and  p.month>=10 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-9,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-9,GETDATE()))  and  p.month>=11 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-10,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-10,GETDATE()))  and  p.month>=12 then  p.money/p.month 
when   Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+1,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+1,GETDATE())) and p.month>=1  then  p.money/p.month 
   else 0  end as  mon1,






   case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+0,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+0,GETDATE()))  and  p.month>=3 then  p.money/p.month  
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-1,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-1,GETDATE()))  and  p.month>=4 then  p.money/p.month
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-2,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-2,GETDATE()))  and  p.month>=5 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-3,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-3,GETDATE()))  and  p.month>=6 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-4,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-4,GETDATE()))  and  p.month>=7 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-5,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-5,GETDATE()))  and  p.month>=8 then  p.money/p.month
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-6,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-6,GETDATE()))  and  p.month>=9 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-7,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-7,GETDATE()))  and  p.month>=10 then  p.money/p.month
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-8,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-8,GETDATE()))  and  p.month>=11 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-9,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-9,GETDATE()))  and  p.month>=12 then  p.money/p.month 
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+1,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+1,GETDATE()))  and  p.month>=2 then  p.money/p.month 
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+2,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+2,GETDATE()))  and  p.month>=1 then  p.money/p.month 
   else 0   end   as  mon2,




   case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+0,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+0,GETDATE()))  and  p.month>=4 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-1,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-1,GETDATE()))  and  p.month>=5 then  p.money/p.month
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-2,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-2,GETDATE()))  and  p.month>=6 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-3,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-3,GETDATE()))  and  p.month>=7 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-4,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-4,GETDATE()))  and  p.month>=8 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-5,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-5,GETDATE()))  and  p.month>=9 then  p.money/p.month
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-6,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-6,GETDATE()))  and  p.month>=10 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-7,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-7,GETDATE()))  and  p.month>=11 then  p.money/p.month
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-8,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-8,GETDATE()))  and  p.month>=12 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+1,GETDATE()))  and datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+1,GETDATE()))  and  p.month>=3 then  p.money/p.month
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+2,GETDATE()))  and datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+2,GETDATE()))  and  p.month>=2 then  p.money/p.month
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+3,GETDATE()))  and datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+3,GETDATE()))  and  p.month>=1 then  p.money/p.month
   else 0   end as  mon3,






        case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+0,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+0,GETDATE()))  and  p.month>=5 then  p.money/p.month   
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-1,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-1,GETDATE()))  and  p.month>=6 then  p.money/p.month
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-2,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-2,GETDATE()))  and  p.month>=7 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-3,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-3,GETDATE()))  and  p.month>=8 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-4,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-4,GETDATE()))  and  p.month>=9 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-5,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-5,GETDATE()))  and  p.month>=10 then  p.money/p.month
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-6,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-6,GETDATE()))  and  p.month>=11 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-7,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-7,GETDATE()))  and  p.month>=12 then  p.money/p.month 
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+1,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+1,GETDATE()))  and  p.month>=4 then  p.money/p.month   
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+2,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+2,GETDATE()))  and  p.month>=3 then  p.money/p.month   
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+3,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+3,GETDATE()))  and  p.month>=2 then  p.money/p.month   
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+4,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+4,GETDATE()))  and  p.month>=1 then  p.money/p.month   
   else 0 end  as  mon4,






   case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+0,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+0,GETDATE()))  and  p.month>=6 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-1,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-1,GETDATE()))  and  p.month>=7 then  p.money/p.month
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-2,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-2,GETDATE()))  and  p.month>=8 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-3,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-3,GETDATE()))  and  p.month>=9 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-4,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-4,GETDATE()))  and  p.month>=10 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-5,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-5,GETDATE()))  and  p.month>=11 then  p.money/p.month
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-6,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-6,GETDATE()))  and  p.month>=12 then  p.money/p.month 
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+1,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+1,GETDATE()))  and  p.month>=5 then  p.money/p.month 
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+2,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+2,GETDATE()))  and  p.month>=4 then  p.money/p.month 
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+3,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+3,GETDATE()))  and  p.month>=3 then  p.money/p.month 
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+4,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+4,GETDATE()))  and  p.month>=2 then  p.money/p.month 
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+5,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+5,GETDATE()))  and  p.month>=1 then  p.money/p.month 
   else 0  end as  mon5,


  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+0,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+0,GETDATE()))  and  p.month>=7 then  p.money/p.month 
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-1,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-1,GETDATE()))  and  p.month>=8 then  p.money/p.month
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-2,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-2,GETDATE()))  and  p.month>=9 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-3,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-3,GETDATE()))  and  p.month>=10 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-4,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-4,GETDATE()))  and  p.month>=11 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-5,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-5,GETDATE()))  and  p.month>=12 then  p.money/p.month   
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+1,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+1,GETDATE()))  and  p.month>=6 then  p.money/p.month 
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+2,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+2,GETDATE()))  and  p.month>=5 then  p.money/p.month 
       when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+3,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+3,GETDATE()))  and  p.month>=4 then  p.money/p.month 
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+4,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+4,GETDATE()))  and  p.month>=3 then  p.money/p.month 
       when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+5,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+5,GETDATE()))  and  p.month>=2 then  p.money/p.month 
       when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+6,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+6,GETDATE()))  and  p.month>=1 then  p.money/p.month 
       else 0  end  as  mon6,






        case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+0,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+0,GETDATE()))  and  p.month>=8 then  p.money/p.month    
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-1,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-1,GETDATE()))  and  p.month>=9 then  p.money/p.month
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-2,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-2,GETDATE()))  and  p.month>=10 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-3,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-3,GETDATE()))  and  p.month>=11 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-4,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-4,GETDATE()))  and  p.month>=12 then  p.money/p.month 
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+1,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+1,GETDATE()))  and  p.month>=7 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+2,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+2,GETDATE()))  and  p.month>=6 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+3,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+3,GETDATE()))  and  p.month>=5 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+4,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+4,GETDATE()))  and  p.month>=4 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+5,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+5,GETDATE()))  and  p.month>=3 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+6,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+6,GETDATE()))  and  p.month>=2 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+7,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+7,GETDATE()))  and  p.month>=1 then  p.money/p.month  
   else 0 end  as  mon7,


   case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+0,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+0,GETDATE()))  and  p.month>=9 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-1,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-1,GETDATE()))  and  p.month>=10 then  p.money/p.month
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-2,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-2,GETDATE()))  and  p.month>=11 then  p.money/p.month 
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-3,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-3,GETDATE()))  and  p.month>=12 then  p.money/p.month   
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+1,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+1,GETDATE()))  and  p.month>=8 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+2,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+2,GETDATE()))  and  p.month>=7 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+3,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+3,GETDATE()))  and  p.month>=6 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+4,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+4,GETDATE()))  and  p.month>=5 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+5,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+5,GETDATE()))  and  p.month>=4 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+6,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+6,GETDATE()))  and  p.month>=3 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+7,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+7,GETDATE()))  and  p.month>=2 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+8,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+8,GETDATE()))  and  p.month>=1 then  p.money/p.month  
   else 0  end as  mon8,


   case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+0,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+0,GETDATE()))  and  p.month>=10 then  p.money/p.month  
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-1,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-1,GETDATE()))  and  p.month>=11 then  p.money/p.month
when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-2,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-2,GETDATE()))  and  p.month>=12 then  p.money/p.month 
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+1,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+1,GETDATE()))  and  p.month>=9 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+2,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+2,GETDATE()))  and  p.month>=8 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+3,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+3,GETDATE()))  and  p.month>=7 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+4,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+4,GETDATE()))  and  p.month>=6 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+5,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+5,GETDATE()))  and  p.month>=5 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+6,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+6,GETDATE()))  and  p.month>=4 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+7,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+7,GETDATE()))  and  p.month>=3 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+8,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+8,GETDATE()))  and  p.month>=2 then  p.money/p.month  
   when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+9,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+9,GETDATE()))  and  p.month>=1 then  p.money/p.month  
   else 0 end   as  mon9,




       case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+0,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+0,GETDATE()))  and  p.month>=11 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,-1,GETDATE()))  and   datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,-1,GETDATE()))  and  p.month>=12 then  p.money/p.month
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+1,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+1,GETDATE()))  and  p.month>=10 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+2,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+2,GETDATE()))  and  p.month>=9 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+3,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+3,GETDATE()))  and  p.month>=8 then  p.money/p.month 
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+4,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+4,GETDATE()))  and  p.month>=7 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+5,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+5,GETDATE()))  and  p.month>=6 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+6,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+6,GETDATE()))  and  p.month>=5 then  p.money/p.month 
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+7,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+7,GETDATE()))  and  p.month>=4 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+8,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+8,GETDATE()))  and  p.month>=3 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+9,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+9,GETDATE()))  and  p.month>=2 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+10,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+10,GETDATE()))  and  p.month>=1 then  p.money/p.month  
  else 0 end  as  mon10,


  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+0,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+0,GETDATE()))  and  p.month>=12 then  p.money/p.month 
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+1,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+1,GETDATE()))  and  p.month>=11 then  p.money/p.month 
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+2,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+2,GETDATE()))  and  p.month>=10 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+3,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+3,GETDATE()))  and  p.month>=9 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+4,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+4,GETDATE()))  and  p.month>=8 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+5,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+5,GETDATE()))  and  p.month>=7 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+6,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+6,GETDATE()))  and  p.month>=6 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+7,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+7,GETDATE()))  and  p.month>=5 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+8,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+8,GETDATE()))  and  p.month>=4 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+9,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+9,GETDATE()))  and  p.month>=3 then  p.money/p.month 
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+10,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+10,GETDATE()))  and  p.month>=2 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+11,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+11,GETDATE()))  and  p.month>=1 then  p.money/p.month 
  else  0 end as  mon11,


  case when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+0,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+0,GETDATE()))  and  p.month>=13 then  p.money/p.month 
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+1,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+1,GETDATE()))  and  p.month>=12 then  p.money/p.month 
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+2,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+2,GETDATE()))  and  p.month>=11 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+3,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+3,GETDATE()))  and  p.month>=10 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+4,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+4,GETDATE()))  and  p.month>=9 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+5,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+5,GETDATE()))  and  p.month>=8 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+6,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+6,GETDATE()))  and  p.month>=7 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+7,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+7,GETDATE()))  and  p.month>=6 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+8,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+8,GETDATE()))  and  p.month>=5 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+9,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+9,GETDATE()))  and  p.month>=4 then  p.money/p.month 
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+10,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+10,GETDATE()))  and  p.month>=3 then  p.money/p.month  
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+11,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+11,GETDATE()))  and  p.month>=2 then  p.money/p.month 
  when Convert(varchar(4),newBeginDate,120)=YEAR( DATEADD(MONTH,+12,GETDATE()))  and    datepart(mm,newBeginDate)= MONTH(DATEADD(MONTH,+12,GETDATE()))  and  p.month>=1 then  p.money/p.month 
  else  0 end as  mon12




  from  Park_monthcard    p   
  left  join  t_User      tu  on  p.parkUserID=tu.UserId
  left  join  t_Property  tp  on  tp.PropertyId=tu.PropertyId
  left  join  t_Building  tb  on  tb.BuildingId=tu.BuildingId
  left  join  t_Room      tr  on  tr.RoomId=tu.RoomId
  where  p.CreateTime  >='2018-05-24 14:00:00' and  p.PayStatus=1  -- AND  (carNo LIKE '%008ES%'   OR   carNo  LIKE '%1C86W%' OR   carNo  LIKE '%7S719%')
 
  )  S   group  by  S.carNo,S.parkUserID,S.parkUserID,S.LoginName,S.RealName,S.PropertyId ,S.PropertyName,
  S.BuildingId ,S.BuildingName ,S.RoomId  ,S.RoomNo  ,S.Apply 


猜你喜欢

转载自blog.csdn.net/qq_23145857/article/details/80497594