create proc 过程名
@时间参数 datetime,@天数参数 int
as
beign
declare @sql varchar(8000)
set @sql='select fhid,CONVERT(varchar(10),发货日期,120) 发货日期,
sum(case when datediff(day,发货日期,'''+CONVERT(varchar(10),@时间参数,120)+''')<='+cast(@天数参数 as varchar(10))+' then 欠款 else 0 end) [欠款日期<='+cast(@天数参数 as varchar(10))+'天],
sum(case when datediff(day,发货日期,'''+CONVERT(varchar(10),@时间参数,120)+''')>'+cast(@天数参数 as varchar(10))+' then 欠款 else 0 end) [欠款日期>'+cast(@天数参数 as varchar(10))+'天]
from 你的表 group by fhid,CONVERT(varchar(10),发货日期,120)'
create procedure p_a(@a smalldatetime)
as
select fhid,发货日期,0 [欠款日期<=30天],sum(欠款) [欠款日期>31天] from table
where datediff(d,发货日期,@a)>31 group by fhid,发货日期
union all
select fhid,发货日期,sum(欠款) [欠款日期<=30天],0 [欠款日期>31天] from table
where datediff(d,发货日期,@a)<31 group by fhid,发货日期
--写为存储过程就是:
create proc p_qry
@欠款日期 datetime
as
select fhid,发货日期
,[欠款日期<=30表]=sum(case when datediff(day,发货日期,@欠款日期)<=30 then 欠款 else 0 end)
,[欠款日期>31表]=sum(case when datediff(day,发货日期,@欠款日期)>31 then 欠款 else 0 end)
from 表a group by fhid,发货日期
go
select fhid,发货日期
,[欠款日期<=30表]=sum(case when datediff(day,发货日期,@欠款日期)<=30 then 欠款 else 0 end)
,[欠款日期>31表]=sum(case when datediff(day,发货日期,@欠款日期)>31 then 欠款 else 0 end)
from 表a group by fhid,发货日期
declare @时间参数 datetime,@天数参数 int
select @时间参数=getdate(),@天数参数=30
declare @sql varchar(8000)
set @sql='select fhid,CONVERT(varchar(10),发货日期,120) 发货日期,
sum(case when datediff(day,发货日期,'''+CONVERT(varchar(10),@时间参数,120)+''')<='+cast(@天数参数 as varchar(10))+' then 欠款 else 0 end) [欠款日期<='+cast(@天数参数 as varchar(10))+'天],
sum(case when datediff(day,发货日期,'''+CONVERT(varchar(10),@时间参数,120)+''')>'+cast(@天数参数 as varchar(10))+' then 欠款 else 0 end) [欠款日期>'+cast(@天数参数 as varchar(10))+'天]
from #你的表 group by fhid,CONVERT(varchar(10),发货日期,120)'