2
我的TSQL來計算百分比顯然是愚蠢的;這是我的存儲過程邏輯的一部分:我的計算字段邏輯有什麼問題(試圖計算百分比)?
. . .
AVG(CASE WHEN Ind.InvoiceDate BETWEEN @BegDate AND @Week1End THEN Ind.Price ELSE 0 END)
Week1Price,
AVG(CASE WHEN Ind.InvoiceDate BETWEEN @Week2Begin AND @EndDate THEN Ind.Price ELSE 0 END)
Week2Price,
AVG(CASE WHEN Ind.InvoiceDate BETWEEN @Week2Begin AND @EndDate THEN Ind.Price ELSE 0 END)
-
AVG(CASE WHEN Ind.InvoiceDate BETWEEN @BegDate AND @Week1End THEN Ind.Price ELSE 0 END)
PriceVariance,
AVG(CASE WHEN Ind.InvoiceDate BETWEEN @Week2Begin AND @EndDate THEN Ind.Price ELSE 0 END)
-
AVG(CASE WHEN Ind.InvoiceDate BETWEEN @BegDate AND @Week1End THEN Ind.Price ELSE 0 END)
/
NULLIF(AVG(CASE WHEN Ind.InvoiceDate BETWEEN @BegDate AND @Week1End THEN Ind.Price ELSE 0 END),0)
PercentageOfPriceVariance
. . .
我想PercentageOfPriceVariance做的是:
(Week2Price - Week1Price)/Week1Price
例如,如果Week2Price是3.38,而Week1Price是20.27,然後(Week2Price - Week1Price)應該是-16.89;然後(-16.89)除以3.38應爲-4.99。
注意,雖然,我得到的結果從瘋狂不同(見第3行,其中%爲2.38):
什麼是錯在我的計算字段的邏輯是什麼?