所以我需要的是:我有代碼,在其中為每個位置(商店)的每個標題定義了實際值、預測值和絕對誤差值。
現在我需要
將一個特定位置(商店)的所有絕對錯誤相加,例如 30 家沃爾瑪應該有相同的商店絕對錯誤,Meijer 應該有他們的。
對一個特定位置(商店)的所有實際資料求和,例如 30 家沃爾瑪應該有相同的商店實際資料,Meijer 應該有他們的。
在計算它們之后,我需要
- 除以每個位置所有單位的“絕對誤差”總和/每個位置的“實際值”總和。
有人知道我是否可以在這里用一條 SQL 陳述句進行計算嗎?
我當前的代碼
-- WAPE (chain)
SET ARITHABORT OFF
SET ANSI_WARNINGS OFF
SELECT
b.[LOC], b.[DMDUNIT],
SUM(b.HistoryQuantity) AS 'Actuals',
SUM(a.TOTFCST) AS 'Forecast',
SUM(ABS(b.HistoryQuantity - a.TOTFCST)) AS 'Abs Error'
FROM
SCPOMGR.FCSTPERFSTATIC a
JOIN
SCPOMGR.HISTWIDE_CHAIN b ON a.[STARTDATE] = b.[DMDPostDate]
AND a.[DMDUNIT] = b.[DMDUNIT]
AND a.[LOC] = b.[LOC]
GROUP BY
b.[LOC], b.[DMDUNIT]
ORDER BY
b.[LOC], b.[DMDUNIT]
現在的樣子

uj5u.com熱心網友回復:
嘗試DMDUNIT從您的GROUP BY條款中洗掉。
SELECT
b.[LOC]/*, b.[DMDUNIT]*/, SUM(b.HistoryQuantity) AS 'Actuals', SUM(a.TOTFCST) AS 'Forecast'
,SUM(ABS(b.HistoryQuantity - a.TOTFCST)) AS 'Abs Error', SUM(ABS(b.HistoryQuantity - a.TOTFCST))/SUM(b.HistoryQuantity) 'Abs Error/Actuals'
FROM
SCPOMGR.FCSTPERFSTATIC a
JOIN
SCPOMGR.HISTWIDE_CHAIN b ON a.[STARTDATE] = b.[DMDPostDate]
AND a.[DMDUNIT] = b.[DMDUNIT]
AND a.[LOC] = b.[LOC]
GROUP BY
b.[LOC]/*, b.[DMDUNIT]*/
ORDER BY
b.[LOC]/*, b.[DMDUNIT]*/
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/362599.html
標籤:sql sql-server 查询语句
上一篇:如何獲取在字串列中找到的某些值?
