DECLARE @Tj_Top_Value int -- top的值,由用户输入
DECLARE @All_Count intSET @Tj_Top_Value =5
Set @orthercount = .........
以下语句出错:
EXEC('select top '+ @Tj_Top_Value +'籍贯, COUNT(*) AS 人数
FROM 人员记录表
GROUP BY 籍贯
ORDER BY 人数 DESC
UNION all
select coun(*) from 人员记录表 where 籍贯 not in('select top '+ @Tj_Top_Value +'籍贯, COUNT(*) AS 人数
FROM 人员记录表
GROUP BY 籍贯')
DECLARE @All_Count intSET @Tj_Top_Value =5
Set @orthercount = .........
以下语句出错:
EXEC('select top '+ @Tj_Top_Value +'籍贯, COUNT(*) AS 人数
FROM 人员记录表
GROUP BY 籍贯
ORDER BY 人数 DESC
UNION all
select coun(*) from 人员记录表 where 籍贯 not in('select top '+ @Tj_Top_Value +'籍贯, COUNT(*) AS 人数
FROM 人员记录表
GROUP BY 籍贯')
DECLARE @All_Count intSET @Tj_Top_Value =5
Set @orthercount = .........
declare @sql varchar(8000)
set @sql='select * from (select top '+ cast(@Tj_Top_Value as varchar(20)) +' 籍贯, COUNT(*) AS 人数
FROM 人员记录表
GROUP BY 籍贯
ORDER BY 人数 DESC ) as t UNION all select ''其它'+'','+cast(@orthercount as varchar(20))exec (@sql)
DECLARE @All_Count intSET @Tj_Top_Value =5
Set @orthercount = .........
declare @sql varchar(8000)
set @sql='select * from (select top '+ cast(@Tj_Top_Value as varchar(20)) +' 籍贯, COUNT(*) AS 人数
FROM 人员记录表
GROUP BY 籍贯) as t UNION all select ''其它'+'','+cast(@orthercount as varchar(20))+' order by 人员记录表.人数 DESC'exec (@sql)
FROM 人员记录表 where 在岗=1'+ @cd_str ))
为什么出错?
在关键字 'EXEC' 附近有语法错误。
')' 附近有语法错误。
直接这样写就行:
SELECT @All_Count=COUNT(*) AS 总人数FROM 人员记录表 where 在岗=1'+ @cd_str
EXEC('SELECT @All_Count=COUNT(*) AS 总人数
FROM 人员记录表 where 在岗=1'+ @cd_str )