当前位置: 代码迷 >> Sql Server >> 数据汇总后横向显示的有关问题
  详细解决方案

数据汇总后横向显示的有关问题

热度:14   发布时间:2016-04-24 09:19:58.0
数据汇总后横向显示的问题
数据库中的的表:aaa 结构如下

序号      始发站     金额 
    1          北京         100
    2          北京         200
    3          北京         300
    4          上海          500
    5          上海           500

数据需要汇总后横向显示:
                  北京              上海
                  600               1000

新手,请高手帮忙
------解决思路----------------------
--静态
SELECT 
    ISNULL(SUM(CASE WHEN 始发站='北京' THEN 金额 END),0)[北京]
    ,ISNULL(SUM(CASE WHEN 始发站='上海' THEN 金额 END),0)[上海]
FROM aaa

--动态
DECLARE @SQL VARCHAR(8000)
SET @SQL=''
SELECT @SQL=@SQL+',ISNULL(SUM(CASE WHEN 始发站='''+始发站+''' THEN 金额 END),0)['+始发站+']'
FROM aaa GROUP BY 始发站
SET @SQL='SELECT '+STUFF(@SQL,1,1,'')+'FROM aaa'
PRINT @SQL
EXEC(@SQL)
  相关解决方案