sql 纵向数据动态转横向数据
说明:有一个表QualityReport,里面存有多条数据,然后我想把QualityReport表中xmname列的所有数据转变成横向数据列,要求是a表里的数据数量不确定...
说明:有一个表QualityReport,里面存有多条数据,然后我想把QualityReport表中xmname列的所有数据转变成横向数据列,要求是a表里的数据数量不确定,如果有5条数据就显示5列,有50条最后的结果就显示50列,小弟自己写了段代码:
DECLARE @sql varchar(max)
set @sql=''select @sql= @sql+ ','+QR_name from QualityReport
group by QR_name
set @sql=stuff(@sql,1,1,'')
create table #aa(xmname varchar(100),QR_comid int,qr_type int)
insert #aa select QR_name,QR_comid,qr_type from QualityReport
SET @sql = 'select * from #aa a pivot (max(qr_type) for xmname in (' + @sql + ') ) as b'
print @sql
EXECUTE IMMEDIATE (@sql);
drop table #aa
问题是总是提示说
EXECUTE IMMEDIATE (@sql)附近有错误,不知道问题出在什么地方还望各位大侠指点一二 谢谢 展开
DECLARE @sql varchar(max)
set @sql=''select @sql= @sql+ ','+QR_name from QualityReport
group by QR_name
set @sql=stuff(@sql,1,1,'')
create table #aa(xmname varchar(100),QR_comid int,qr_type int)
insert #aa select QR_name,QR_comid,qr_type from QualityReport
SET @sql = 'select * from #aa a pivot (max(qr_type) for xmname in (' + @sql + ') ) as b'
print @sql
EXECUTE IMMEDIATE (@sql);
drop table #aa
问题是总是提示说
EXECUTE IMMEDIATE (@sql)附近有错误,不知道问题出在什么地方还望各位大侠指点一二 谢谢 展开
2个回答
展开全部
IMMEDIATE 这是什么语法?2012的吗?
追问
是别的朋友告诉我的,http://zhidao.baidu.com/question/535894793?quesup2&oldq=1
或者是老兄有其他的方法给指点一下啊,谢谢了(顺便说下,我用的是05版本的sql)
追答
好像是老大答的,思路是对的,就是这语句不知道是不是2012的,05没见过
EXEC(@sql)改成这样执行一下,看看还报不,或者你不是用print打印出来语句了吗
直接贴出来执行一下看看
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不好意思,没看懂,哪来的a表,你就是想行转列的呀,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询