大家好,我正在使用 DB2!我有一个查询计算 30 天内的 MPG,它是通过捕获里程表的变化作为分子和燃料购买的总和作为分母来完成的。然而,我有一个特定的单位让我有些悲伤!显然他在过去 30 天内没有购买任何燃料,因此他导致我的查询返回错误
Division by zero was attempted. SQLState = 22012
Run Code Online (Sandbox Code Playgroud)
我以为我可以很聪明并使用coalesce它,但它是一种不受支持的类型。这是查询mpg!
ROUND(((SELECT MAX(ODOMETER)-MIN(ODOMETER) FROM ODOHIST O
WHERE READINGDATE >= CURRENT DATE - 30 DAYS AND O.UNIT_ID = DEFAULT_PUNIT)/
(SELECT SUM(T2.VOL_PFUEL) FROM FC_POS T2 WHERE T2.DRIVER_ID = DRIVER.DRIVER_ID AND POS_DATE >= CURRENT DATE - 30 DAYS)),2) AS MPG_30DAYS
Run Code Online (Sandbox Code Playgroud)
而不是实际返回 0 的字段,它只是空白,那么是否有类似的函数coalesce会强制返回值?
谢谢你的帮助!
在我尝试使用该行编辑过程时
CREATE OR DROP PROCEDURE
Run Code Online (Sandbox Code Playgroud)
我创建了两个同名的程序,如何删除它们?
每当我尝试删除它时收到的错误是
对例程 BT_CU_ODOMETER 的引用没有签名,但该例程在其模式中并不唯一。SQL状态=42725
我正在使用 DB2