分上下半月统计 SQL

代码
declare   @t   table   (Date   datetime,   Name   varchar(30),   Money   money)   
  
insert   @t   
  
select   dateadd(dd,10,getdate()),'a',10.0000   union   all   
  
select   dateadd(dd,11,getdate()),'a',10.0000   union   all   
  
select   dateadd(dd,12,getdate()),'b',10.0000   union   all   
  
select   dateadd(dd,13,getdate()),'b',10.0000   union   all   
  
select   dateadd(dd,6,getdate()),'b',10.0000   union   all   
  
select   dateadd(dd,-1,getdate()),'a',10.0000   union   all   
  
select   dateadd(dd,-2,getdate()),'a',10.0000   union   all   
  
select   dateadd(dd,-3,getdate()),'b',10.0000   union   all   
  
select   dateadd(dd,-4,getdate()),'b',10.0000   union   all   
  
select   dateadd(dd,-40,getdate()),'b',10.0000   union   all   
  
select   dateadd(dd,-20,getdate()),'b',10.0000   union   all   
  
select   dateadd(dd,30,getdate()),'b',10.0000   union   all   
  
select   dateadd(dd,60,getdate()),'b',10.0000   
  
SELECT   CONVERT(VARCHAR(7),Date,120)+'-'+   
  
case   when   day(date)   between   1   and   15   then   '上半月'   else   '下半月'   end,   
  Name,   
  
SUM(Money)     
  
FROM   @t   t   
  
GROUP   BY   CONVERT(VARCHAR(7),Date,120)+'-'+   
  
case   when   day(date)   between   1   and   15   then   '上半月'   else   '下半月'   end,   
  Name

欢迎转载,转载请注明出处:http://www.cnblogs.com/Tonyyang/

原文地址:https://www.cnblogs.com/Tonyyang/p/1732231.html