日期:2014-05-17  浏览次数:20590 次

输入日期区间,自动出来每个月的汇总,可以做到吗
当用户输入条件变量是 ’2013-01-01’  和 ‘2013-03-01’
查询的结果就是
SELECT 客户,规格,SUM(QUAN) AS 1月汇总,SUM(QUAN) AS 2月汇总,SUM(QUAN) AS 3月汇总
FROM --------

要求就是用户输入日期区间,SQL语句自动拆成 各月汇总, 这样子可以做到吗, 我已经看到高人已经做到了,但是我不知道如何写,盼高人指点,谢谢

------解决方案--------------------
写存储过程啊
------解决方案--------------------
对不起啊,我主要是写了核心的,加上日期区间很简单, 你定义@time1和@time2你肯定会,你定义后接受存储过程传进来的参数就可以了,然后下面就用我写的

Declare @sql varchar(max)   
set @sql=STUFF((select ','+QUOTENAME(CONVERT(varchar(7),[time],120))  from [Table_4] b
where b.[time] between @time1 and @time2
group by CONVERT(varchar(7),[time],120) FOR XML PATH('')) ,1,1,'')   

set @sql='select * from (SELECT CONVERT(varchar(7),[time],120) as saletime,[客户],[规格] FROM [master].[dbo].[Table_4]) t  pivot (sum([QUAN])for t.saletime in ('+@sql+')) a '  exec(@sql)