sql查询结果横向显示
数据库表:FL
字段名称:A,B,C
查询语句:
declare @sql varchar(8000) set @sql = 'select A AS 台号' select @sql = @sql + ' , max(case B when ''' + B + ''' then C else 0 end) [' + B + ']' from (select distinct B,D from fl ) as a order by D set @sql = @sql + ' from fl group by A' exec(@SQL)
横向显示结果:
---------------------问题--------------------
FL数据库表中再添加两个字段D(排序),E(日期)
问题:怎样实现根据D字段排序 和 E字段指定日期横向显示?
------最佳解决方案--------------------
declare @sql varchar(8000)
set @sql = 'select A AS 台号'
select @sql = @sql + ' , max(case B when ''' + B + ''' then C else 0 end) [' + B + ']'
from (select distinct B,D from fl ) as a order by D
set @sql = @sql + ' from fl where 日期='+quotename('2012-5-7','''')+' group by A' exec(@SQL)
------其他解决方案--------------------不懂,求解释
------其他解决方案--------------------求解释,不懂!
------其他解决方案--------------------行列转化!!
------其他解决方案--------------------补充说明:怎样在以下语句中加上一个日期条件(日期是E字段),如:我只想查看2012-5-7日的数据
declare @sql varchar(8000) set @sql = 'select A AS 台号' select @sql = @sql + ' , max(case B when ''' + B + ''' then C else 0 end) [' + B + ']' from (select distinct B,D from fl ) as a order by D set @sql = @sql + ' from fl group by A' exec(@SQL)
------其他解决方案--------------------能不能不要帖图片上 直接把数据复制上来行不 还有你期待的结果长什么样子
------其他解决方案--------------------非常感谢啊!