日期:2014-05-17  浏览次数:20501 次

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)
------其他解决方案--------------------
能不能不要帖图片上  直接把数据复制上来行不  还有你期待的结果长什么样子
------其他解决方案--------------------
非常感谢啊!