22,300
社区成员




declare @TableName varchar(50)
SET @TableName='TB' --表名
declare @ReFieldsStr varchar(50)
SET @ReFieldsStr='2009-8-21' --DateTime字段名
declare @OrderString varchar(50)
SET @OrderString='COL' --排序字段(不用加order by)
declare @WhereString varchar(500)
SET @WhereString='1=1' --条件语句(不用加where) )
Declare @SqlString nvarchar(2000);
set @SqlString=N'select DATEPART(year,'''+ @ReFieldsStr+''') AS TheYear,count(*) AS YearCount FROM '+@TableName
set @SqlString = @SqlString+' WHERE '+ @WhereString
set @SqlString = @SqlString + ' GROUP BY DATEPART(year,'''+ @ReFieldsStr+''') ORDER BY ' + @OrderString +' DESC '
PRINT @SqlString
/*
select DATEPART(year,'2009-8-21') AS TheYear,count(*) AS YearCount FROM TB WHERE 1=1 GROUP BY DATEPART(year,'2009-8-21') ORDER BY COL DESC
declare @TableName varchar(50)
SET @TableName='TB' --表名
declare @ReFieldsStr varchar(50)
SET @ReFieldsStr='2009-8-21' --DateTime字段名
declare @OrderString varchar(50)
SET @OrderString='COL' --排序字段(不用加order by)
declare @WhereString varchar(500)
SET @WhereString='1=1' --条件语句(不用加where) )
Declare @SqlString nvarchar(2000);
set @SqlString=N'(select DATEPART(year,'+ @ReFieldsStr+') AS TheYear,count(*) AS YearCount FROM '+@TableName
set @SqlString = @SqlString+' WHERE '+ @WhereString
set @SqlString = @SqlString + ' GROUP BY DATEPART(year,'+ @ReFieldsStr+') ORDER BY ' + @OrderString +' DESC )'
PRINT @SqlString
/*
(select DATEPART(year,2009-8-21) AS TheYear,count(*) AS YearCount FROM TB WHERE 1=1 GROUP BY DATEPART(year,2009-8-21) ORDER BY COL DESC )