案例:
原表有兩列,分別為月份、月份銷售額,而需要一條 SQL 語句實現(xiàn)統(tǒng)計出每個月份以及當前月以前月份銷售額和
sql 測試數(shù)據準備:
DECLARE
?@
Temp
?Table
(
? monthNo
?
INT
,?
--- 月份
??
MoneyData?
Float
??--- 金額
)
insert
??INTO
?@
TEMP
SELECT
?1,100?
UNION
?ALL
SELECT
??2,200?
UNION
?ALL
SELECT
??3,300?
UNION
?ALL
SELECT
??4,400?
UNION
?ALL
SELECT
??5,500?
UNION
?ALL
SELECT
??6,600?
UNION
?ALL
SELECT
??7,600
SELECT
??monthNo, MoneyData, SUM
(MoneyData) OVER( )?
AS
?'總銷售額'
,
SUM
(MoneyData) OVER( PARTITION?
BY
?ID )?
AS
??'當月銷售額'
,
SUM
(MoneyData) OVER(
ORDER
?BY
?ID?
ASC
)?
AS
?'截止當月累計銷售額'
FROM
?@
Temp
報錯信息如下:
原因:SUM
(MoneyData) OVER (
ORDER
?BY
?ID?
ASC
) 必須在sqlserver 2012版及以上執(zhí)行
版本不滿足的時候只能更換其他方式完成查詢,如:
SELECT
??A.monthNo,?SUM
(B.MoneyData)??
FROM
?@
Temp
?A?
INNER
?JOIN
?@
Temp
?B
ON
?A.monthNo>=B.monthNo?GROUP
?BY
?A.ID
------ 重點在于 ON 條件,通過自連接 A.monthNo >= B.monthNo ,可獲取所需數(shù)據,再通過
文章來源:http://www.zghlxwxcb.cn/news/detail-645121.html
GROUP
?BY
?、
SUM?
?即可統(tǒng)計求和
文章來源地址http://www.zghlxwxcb.cn/news/detail-645121.html
到了這里,關于Microsoft SQL Server 2008中,語法生成錯誤“并行數(shù)據倉庫(PDW)功能未啟用“(已解決)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!