ALTER PROCEDURE [dbo].[getHcrStat1580] @wherestr varchar(200), @YMD tinyint AS BEGIN SET NOCOUNT ON; DECLARE @class varchar(200),@grpstr varchar(50),@sql nvarchar(1200),@colstr varchar(400),@table varchar(20) set @table='[NGtbhcr1580]' set @class='class' if @YMD=0 begin set @colstr='rq=YMD,FUR_NO,'+@class set @grpstr=' group by YMD,FUR_NO,class' end else if @YMD=1 begin set @colstr='rq=YM,FUR_NO,'+@class set @grpstr=' group by YM,FUR_NO,class with rollup' end else if @YMD=2 begin set @colstr='rq=YY,FUR_NO,'+@class set @grpstr=' group by YY,FUR_NO,class with rollup' end set @sql='select '+@colstr+'from '+@table+' where YMD between '+@wherestr+@grpstr exec sp_executesql @sql,N'@colstr varchar(400)',@colstr end
时间: 2023-05-18 21:03:35 浏览: 198
SQL中的ALTER LOGFILE组语句、ALTER程序声明语句和ALTER SERVER语句.pdf
这是一个 SQL 存储过程,根据传入的参数 @wherestr 和 @YMD,查询 NGtbhcr1580 表中符合条件的数据,并按照日期、FUR_NO 和 class 进行分组统计。其中,@YMD 参数为 0 时按日统计,为 1 时按月统计,为 2 时按年统计。查询结果包括日期、FUR_NO 和 class 三个字段,以及对应的统计数据。
阅读全文