帮我看看我的存储进程执行结果杂不对呢,比如参数我传递的是@sdate 2005-05-23 14:59:59 和@sdate 2005-05-22 14:59:59
CREATE PROCEDURE rjstj
@sdate datetime,
@edate datetime
/*
处理厂商统计的sdate代表开始日期edate
代表结束日期
@sdate datetime,
*/
as
--set @sDate=convert(datetime,convert(varchar(10),getdate(),120)+' 14:59:59.997')
--set @edate=dateadd(dd,-1,@eDate)
declare @s varchar(8000)
--set @sdate='2006-01-10'
--set @edate='2006-01-07'
set @s='select 类别= isnull(类别,''总计'')'
select @s=@s+',['+类型名称+']=sum(case 类型名称 when '''+类型名称+''' then 销售单价*数量 else 0 end)'
from yphjxshz group by 类型名称 order by 类型名称
set @s=@s
+',[合计]= sum(销售单价*数量) from yphjxshz where datediff(ms,'''+convert(char(20),@sdate,120)+''',发生日期)<=0 and datediff(ms,'''+convert(char(20),@edate,120)+''',发生日期)>= 0 group by 类别 with rollup order by 合计'
exec(@s)
GO
执行完后和我用sum()统计出的合计差,不知道为什么