下面是列变行的SQL(百度的,,,,)
DECLARE @sql VARCHAR(8000)
SELECT @sql= ISNULL(@sql+',','')+spname FROM t_Xiaoshou
GROUP BY spname
SET @sql='select * from t_Xiaoshou pivot (max(Spshuliang) for spname in ('+@sql+'))a'
exec(@sql)
运行是没错的,运行截图为:

表t_Xiaoshou中的数据为:

那么问题来了。
一:我要运行结果不显示Khbianhao,Psybianhao,Spbianhao,Xsshijian,应该怎么搞。
二:我要可以根据psyname(或者psybianhao) 和 Xsshijian查询应该怎么搞。
跪谢各位
------解决思路----------------------
DECLARE @sql VARCHAR(8000)
SELECT @sql= ISNULL(@sql+',','')+spname FROM t_Xiaoshou
GROUP BY spname
--SET @sql='select * from t_Xiaoshou pivot (max(Spshuliang) for spname in ('+@sql+'))a'
SET @sql='select khname, '+@sql+' from t_Xiaoshou pivot (max(Spshuliang) for spname in ('+@sql+'))a'
exec(@sql)
加个半角逗号------解决思路----------------------
DECLARE @sql VARCHAR(8000)是这个意思吗
SELECT @sql= ISNULL(@sql+',','')+spname FROM t_Xiaoshou
GROUP BY spname
SET @sql='select khname, '+@sql+' from (select * from t_Xiaoshou where Xsshijian='''')T pivot (max(Spshuliang) for spname in ('+@sql+'))a'
exec(@sql)