--统计的时候用类似下面的方法:--查询欠款 create proc p_qry as declare @s varchar(8000) set @s='' select @s=@s+',['+区间名称+']=sum(case when ' +case when 开始时间=-1 then '1=1' else ' 日期<='''+convert(varchar(10),dateadd(day,-开始时间,getdate()),120)+'''' end +case when 结束时间=-1 then '' else ' and 日期>='''+convert(varchar(10),dateadd(day,-结束时间,getdate()),120)+'''' end +' then 金额 else 0 end)' from 账龄表 exec('select 客户名称'+@s+' from 欠款表') go
------- ---------- ---------- ----------
1 <1个月 -1 30
2 1~2个月 31 60
3 3~6个月 61 180
4 半年以上 181 -1
create proc p_qry
as
declare @s varchar(8000)
set @s=''
select @s=@s+',['+区间名称+']=sum(case when '
+case
when 开始时间=-1 then '1=1'
else ' 日期<='''+convert(varchar(10),dateadd(day,-开始时间,getdate()),120)+''''
end
+case
when 结束时间=-1 then ''
else ' and 日期>='''+convert(varchar(10),dateadd(day,-结束时间,getdate()),120)+''''
end
+' then 金额 else 0 end)'
from 账龄表
exec('select 客户名称'+@s+' from 欠款表')
go