在SQL Server 2008中列为行

用户名

我正在使用SQL Server2008。我有一个临时表,该表返回此结果

Location      Month        value
US          January         10
US          February        10
US          March           10
US          April           10
US          May             10
US          June            10
UK          January         10
UK          January         10
UK          February        10
UK          February        10
UK          March           10
UK          March           10
UK          April           10
UK          April           10
UK          May             10
UK          May             10
UK          June            10
UK          June            10

我想得到如下结果

Location    January February    March   Q1  April   May June    Q2
US              10        10       10   30     10    10   10    30
UK              20        20       20   60     20    20   20    60

如何使用SQL Server 2008查询以获得以上结果?

鲁比克

您可以使用此查询,您必须在缺少所有月份/季度的情况下完成它以满足您的需求:

select  Location
        ,sum(case when [Month]  = 'January'  then value else 0 end)  as January
        ,sum(case when [Month]  = 'February' then value else 0 end)  as February
        ,sum(case when [Month]  = 'March'    then value else 0 end)  as March
        ,sum(case when [Month] in ( 'January', 'February', 'March')
                                             then value else 0 end) as Q1
        ...
        -- Repeat months...
        ...
        ,sum(value) as AllMonthTotal
from    myTempTable
group by Location

-- UNION to get rowwise total
union
select  'TOTAL'
        ,sum(case when [Month]  = 'January'  then value else 0 end)  as January
        ,sum(case when [Month]  = 'February' then value else 0 end)  as February
        ,sum(case when [Month]  = 'March'    then value else 0 end)  as March
        ,sum(case when [Month] in ( 'January', 'February', 'March')
                                             then value else 0 end) as Q1
        ...
        -- Repeat months...
        ...
        ,sum(value) as AllMonthTotal
from    myTempTable

还有PIVOT方法:

在SQL Server 2008中使用PIVOT

MSSQL动态数据透视表列值到列标题

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL Server 2008中的自动行删除

来自分类Dev

在SQL SERVER中检查列为NULL还是NOT

来自分类Dev

SQL Server 2008中基于计算列的新行

来自分类Dev

SQL Server 2008中基于计算列的新行

来自分类Dev

我想在SQL Server 2008中合并两行

来自分类Dev

根据sql server 2008中的列值显示行

来自分类Dev

SQL Server 2008中的减法

来自分类Dev

SQL Server 2008中的递归

来自分类Dev

在SQL Server 2008中订购

来自分类Dev

SQL Server 2008中的SQL FIFO逻辑

来自分类Dev

SQL Server 2008中的SQL FIFO逻辑

来自分类Dev

前 6 行的总和 SQL SERVER 2008

来自分类Dev

在SQL Server 2008中的列中添加#

来自分类Dev

如何找到有关在sql server 2008中更新或插入sql表行的信息?

来自分类Dev

在SQL中选择行对(应在SQL Server 2008和2012中工作)

来自分类Dev

SELECT查询中的默认行顺序-SQL Server 2008与SQL 2012

来自分类Dev

从Microsoft SQL Server 2008中的列中的每个不同字段中获取前2行

来自分类Dev

SQL Server 2008 R2:从多个表中删除重复的行,并保留原始的行

来自分类Dev

SQL Server 2008中的循环联接

来自分类Dev

在SQL Server 2008中创建日期

来自分类Dev

SQL Server 2008中的表格问题

来自分类Dev

在MS SQL Server 2008中创建序列

来自分类Dev

SQL Server 2008中的递归查询

来自分类Dev

SQL SERVER 2008中的累积添加

来自分类Dev

SQL Server 2008中的复杂模式匹配

来自分类Dev

在SQL Server 2008中无法使用Float

来自分类Dev

SQL Server 2008中的日期格式

来自分类Dev

SQL Server 2008中的数据透视表

来自分类Dev

SQL Server 2008中的表格问题