我正在写一份报告,它应该显示库存准确率,然后是准确率。问题是库存中可能存在过多(正)或短缺(负)。百分比将按位置计算
例如。
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%我如何计算方差,而不仅仅是期望与实际的比率?
发布于 2019-03-29 23:43:58
使用CASE语句可以很容易地做到这一点。棘手的部分是确保您对十进制值进行计算。您可以从小数开始并转换回INT,也可以从INT开始并在计算中将它们转换为小数。
下面是一个使用临时表的示例,其中包含示例数据:
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 100https://stackoverflow.com/questions/55420679
复制相似问题