我有一个单一的表-驱动程序我想知道多少百分比的驱动程序已被终止本月相比,所有活动的驱动程序。我认为我已经使它非常复杂,虽然它确实返回一个结果,它只是一个0。我试图使用转换为十进制,但这对我也不工作,因为计算结果仍然是0。
WITH X AS
(
SELECT
CAST(COUNT(*) AS DECIMAL (5,2)) TERMINATED,
0 ACTIVE
FROM DRIVER WHERE
MONTH(TERMINATION_DATE) = MONTH(CURRENT TIMESTAMP) AND YEAR(TERMINATION_DATE) = YEAR(CURRENT TIMESTAMP)
UNION ALL
SELECT
0 TERMINATED,
CAST(COUNT(*) AS FLOAT) ACTIVE
FROM DRIVER WHERE
ACTIVE_IN_DISP = 'True'
)
SELECT
CAST(SUM(TERMINATED)/(SUM(ACTIVE) + SUM(TERMINATED)*100) AS DECIMAL (10,2))
FROM X
1条答案
按热度按时间7ivaypg91#
你的括号有点乱,而不是
应显示为
你得到的数字太小了,这就是为什么它不适合两位小数。
我会重写你的查询如下: