我正在尝试使用一个简单的数据透视表来分析多年来的营业额与费用。我的源数据表很简单,如下所示:
GroupName|Total|Year|
Income |1000 |2012|
Income |1200 |2013|
Income |1500 |2014|
Expenses |750 |2012|
Expenses |800 |2013|
Expenses |950 |2014|
我希望将其转向:
GroupName|2012|2013|2014|
Income |1000|1200|1500|
Expenses |750 |800 |950 |
非常简单我想如果你知道怎么做,但我仍然试图理解SQL中的枢轴。
答案 0 :(得分:0)
使用PIVOT:
SELECT GroupName, [2012], [2013], [2014]
FROM
(SELECT *
FROM MyTable) AS SourceTable
PIVOT
(
AVG(Total)
FOR Year IN ([2012], [2013], [2014])
) AS PivotTable
你得到了所需的输出:
GroupName 2012 2013 2014
---------------------------------
Expenses 750 800 950
Income 1000 1200 1500
答案 1 :(得分:0)
这可能有用:
SELECT GroupName,
[2012],
[2013],
[2014]
FROM Tabl
PIVOT ( Max(Total)
FOR Yr IN ([2012],
[2013],
[2014]) ) AS PivotTable
注意:如果有两个或多个行具有相同的GroupName
和Yr
,那么它将选择其中最大的总数,并将其显示在输出中。