我正在处理一份报告,该报告应该显示库存准确性,然后显示准确性百分比。问题是库存可能过多(正)或短缺(负)。百分比将按位置
例如。
Loc. expected qty Actual QTY %
Location 1 48 48 100%
Location 2 52 53 98%
Location 3 48 45 93%
Location 4 48 48 100%
如何计算方差,而不仅仅是预期与实际的比率?
答案 0 :(得分:1)
您可以使用CASE
语句轻松完成此操作。棘手的部分是确保您对DECIMAL值进行计算。您可以以DECIMALs开头并强制转换为INT,也可以以INTs开头并将其强制转换为小数。
下面是一个使用临时表和示例数据的示例:
CREATE TABLE #table1
(
loc INT
,[expected qty] DECIMAL(10, 1)
,[Actual QTY] DECIMAL(10, 1)
)
INSERT INTO #table1
(
loc
,[expected qty]
,[Actual QTY]
)
VALUES
(1, 48, 48)
,(2, 52, 53)
,(3, 48, 45)
,(4, 48, 48)
SELECT
loc
,[expected qty] = CAST([expected qty] AS INT)
,[Actual QTY] = CAST([Actual QTY] AS INT)
,[Acc %] = CAST(CASE WHEN [expected qty] >= [Actual QTY]
THEN ( [Actual QTY] / [expected qty] ) * 100
WHEN [expected qty] < [Actual QTY]
THEN 100 - ((( [Actual QTY] / [expected qty] ) * 100 ) - 100 ) END AS INT)
FROM #table1
DROP TABLE #table1
结果:
loc expected qty Actual QTY Acc %
1 48 48 100
2 52 53 98
3 48 45 93
4 48 48 100