34,838
社区成员




select isnull(天数,'累计') 天数 ,
sum(case flag when 0 then 1 else 0 end) '未处理',
sum(case flag when 1 then 1 else 0 end) '正在处理中',
sum(case flag when 2 then 1 else 0 end) '已回复',
sum(case isnull(flag,3) when 3 then 1 else 0 end) '无效'
from
(
select input_time , flag , 天数 =
case
when datediff(day,input_time,getdate()) between 0 and 7 then '0-7'
when datediff(day,input_time,getdate()) between 8 and 15 then '8-15'
when datediff(day,input_time,getdate()) between 16 and 30 then '16-30'
when datediff(day,input_time,getdate()) > 30 then '>30'
end
from tablename
) t
group by 天数 with rollup
select isnull(天数,'合计') 天数 ,
sum(case flag when 0 then 1 else 0 end) '未处理',
sum(case flag when 1 then 1 else 0 end) '正在处理中',
sum(case flag when 2 then 1 else 0 end) '已回复',
sum(case flag when 3 then 1 else 0 end) '无效'
from
(
select input_time , flag , 天数 =
case
when datediff(day,input_time,getdate()) between 0 and 7 then '0-7'
when datediff(day,input_time,getdate()) between 8 and 15 then '8-15'
when datediff(day,input_time,getdate()) between 16 and 30 then '16-30'
when datediff(day,input_time,getdate()) > 30 then '>30'
end
from tablename
) t
group by 天数
with rollup
select isnull(天数,'累计') 天数 ,
sum(case flag when 0 then 1 else 0 end) '未处理',
sum(case flag when 1 then 1 else 0 end) '正在处理中',
sum(case flag when 2 then 1 else 0 end) '已回复',
sum(case flag when 3 then 1 else 0 end) '无效'
from
(
select input_time , flag , 天数 =
case
when datediff(day,input_time,getdate()) between 0 and 7 then '0-7'
when datediff(day,input_time,getdate()) between 8 and 15 then '8-15'
when datediff(day,input_time,getdate()) between 16 and 30 then '16-30'
when datediff(day,input_time,getdate()) > 30 then '>30'
end
from tablename
) t
group by 天数 with rollup
select 天数 ,
sum(case flag when 0 then 1 else 0 end) '未处理',
sum(case flag when 1 then 1 else 0 end) '正在处理中',
sum(case flag when 2 then 1 else 0 end) '已回复',
sum(case flag when 3 then 1 else 0 end) '无效'
from
(
select input_time , flag , 天数 =
case
when datediff(day,input_time,getdate()) between 0 and 7 then '0-7'
when datediff(day,input_time,getdate()) between 8 and 15 then '8-15'
when datediff(day,input_time,getdate()) between 16 and 30 then '16-30'
when datediff(day,input_time,getdate()) > 30 then '>30'
end
from tablename
) t
group by 天数
create table letter_files(input_time datetime,flag int)
go
select '0-7' '天数',
'未回复'=sum(case flag when 0 then 1 else 0 end),
'正在处理中'=sum(case flag when 1 then 1 else 0 end),
'已回复'=sum(case flag when 2 then 1 else 0 end),
'无效'=sum(case flag when 3 then 1 else 0 end)
from letter_files
where datediff(dd,input_time,getdate()) between 0 and 7
union
select '7-15' '天数',
'未回复'=sum(case flag when 0 then 1 else 0 end),
'正在处理中'=sum(case flag when 1 then 1 else 0 end),
'已回复'=sum(case flag when 2 then 1 else 0 end),
'无效'=sum(case flag when 3 then 1 else 0 end)
from letter_files
where datediff(dd,input_time,getdate()) between 7 and 15
union
select '15-30' '天数',
'未回复'=sum(case flag when 0 then 1 else 0 end),
'正在处理中'=sum(case flag when 1 then 1 else 0 end),
'已回复'=sum(case flag when 2 then 1 else 0 end),
'无效'=sum(case flag when 3 then 1 else 0 end)
from letter_files
where datediff(dd,input_time,getdate()) between 15 and 30
union
select '大于30' '天数',
'未回复'=sum(case flag when 0 then 1 else 0 end),
'正在处理中'=sum(case flag when 1 then 1 else 0 end),
'已回复'=sum(case flag when 2 then 1 else 0 end),
'无效'=sum(case flag when 3 then 1 else 0 end)
from letter_files
where datediff(dd,input_time,getdate()) > 30
union
select '累计' '天数',
'未回复'=sum(case flag when 0 then 1 else 0 end),
'正在处理中'=sum(case flag when 1 then 1 else 0 end),
'已回复'=sum(case flag when 2 then 1 else 0 end),
'无效'=sum(case flag when 3 then 1 else 0 end)
from letter_files
order by 天数
drop table letter_files
select '0-7' '天数',
'未回复'=sum(case flag when 0 then 1 else 0 end),
'正在处理中'=sum(case flag when 1 then 1 else 0 end),
'已回复'=sum(case flag when 2 then 1 else 0 end),
'无效'=sum(case flag when 3 then 1 else 0 end)
from ss
where datediff(dd,input_time,getdate()) between 0 and 7
union
select '7-15' '天数',
'未回复'=sum(case flag when 0 then 1 else 0 end),
'正在处理中'=sum(case flag when 1 then 1 else 0 end),
'已回复'=sum(case flag when 2 then 1 else 0 end),
'无效'=sum(case flag when 3 then 1 else 0 end)
from ss
where datediff(dd,input_time,getdate()) between 7 and 15
union
select '15-30' '天数',
'未回复'=sum(case flag when 0 then 1 else 0 end),
'正在处理中'=sum(case flag when 1 then 1 else 0 end),
'已回复'=sum(case flag when 2 then 1 else 0 end),
'无效'=sum(case flag when 3 then 1 else 0 end)
from ss
where datediff(dd,input_time,getdate()) between 15 and 30
union
select '>30' '天数',
'未回复'=sum(case flag when 0 then 1 else 0 end),
'正在处理中'=sum(case flag when 1 then 1 else 0 end),
'已回复'=sum(case flag when 2 then 1 else 0 end),
'无效'=sum(case flag when 3 then 1 else 0 end)
from ss
where datediff(dd,input_time,getdate()) >30
union
select '累计' '天数',
'未回复'=sum(case flag when 0 then 1 else 0 end),
'正在处理中'=sum(case flag when 1 then 1 else 0 end),
'已回复'=sum(case flag when 2 then 1 else 0 end),
'无效'=sum(case flag when 3 then 1 else 0 end)
from ss