我正在尝试运行一个SQL查询,该查询每个月计算工程完成一个项目所需的平均时间和按时完成项目的百分比。
SELECT
AVG(DATEDIFF(DAY, [DateBlockReleased], [DateEngineeringTargetComplete])),
SUM(IIF(DATEDIFF(DAY, [DateBlockReleased], [DateEngineeringTargetComplete]) >= 0, 1, 0)) AS [OnTime]
FROM
[JobData].[JobData],
[JobData].[BOMInfo],
[JobData].[DesignInfo]
WHERE ...
当前返回的是平均耗时和按时项目的数量,但是,我不确定如何将其除以项目总数。我试过在总和后加/ COUNT(*)* 100,但这总是返回0。
答案 0 :(得分:0)
要计算按时项目的比例,可以使用avg()
:
AVG(CASE
WHEN DateEngineeringTargetComplete >= DateBlockReleased
THEN 1.0
ELSE 0.0
END) AS OnTimeRatio
如果您希望该值在0-100范围内,只需将比率乘以100。
答案 1 :(得分:0)
您只需要乘以1.0
if you are doing select a/b, do it like select a*1.0/b
在您的示例中,执行:/COUNT(*) * 100.0