我看到使用GROUP BY CUBE()
会将总行添加到枢轴的底部,并且我一直在尝试让我的语法准确无误,以便能够做到这一点。好吧,我的语法正在运行,但是我没有在结果集底部找到Total。这是为什么?将总行添加到枢轴底部
select *
FROM
(
select case
WHEN a.state LIKE 'CA' THEN 'California'
WHEN a.state LIKE 'WA' THEN 'Washington'
else a.state
end As [Full State],
SaleID As [Sales By State],
CONVERT(VARCHAR(20), dt.CumulativeWeek) AS Week
FROM retailsales.Store1 a
INNER JOIN retailsales.customCalendar dt
ON a.orderDate = dt.orderDate
WHERE a.orderDate IS NOT NULL
GROUP BY CUBE (SaleID, state, dt.CumulativeWeek)
) src
pivot
(
COUNT([Sales By State])
For Week IN ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13])
) piv
我试图移动CUBE()
声明我的支点之外,但我得到这里编译错误更新代码
select *
FROM
(
select case
WHEN a.state LIKE 'CA' THEN 'California'
WHEN a.state LIKE 'WA' THEN 'Washington'
else a.state
end As [Full State],
SaleID As [Sales By State],
CONVERT(VARCHAR(20), dt.CumulativeWeek) AS Week
FROM retailsales.Store1 a
INNER JOIN retailsales.customCalendar dt
ON a.orderDate = dt.orderDate
WHERE a.orderDate IS NOT NULL
GROUP BY CUBE (SaleID, state, dt.CumulativeWeek)
) src
pivot
(
COUNT([Sales By State])
For Week IN ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13])
) piv
GROUP BY CUBE (Full State)
和产生这个编译错误
Msg 8120, Level 16, State 1, Line 1
Column 'piv.1' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
最简单的方法是使用'UNION'。 – 2015-04-02 19:08:27
@ jbarker2160你能告诉我一个例子吗? – 2015-04-02 19:09:43
[这](http://www.w3schools.com/sql/sql_union.asp)是一个很好的资源。 – 2015-04-02 19:11:23