我尝试修复我之前做过的SQL并且在执行此操作时遇到问题。 我有一个巨大的SQL女巫计算报告的SUM字段。
ATM SQL计算每辆车,即使它是一辆电动车。
CASE
WHEN AVG(mov.TOTALCONSUMPTION) >0
AND AVG((moving.TOTALTIME)) >0
THEN ROUND(AVG(mov.TOTALCONSUMPTION) / (AVG(mov.TOTALTIME)/3600), 4)
ELSE 0
END ConsumptionPerHour,
我的sql需要条件Where vehicle.energysource = 0
,
我试着建立它但总是得到错误。 “不是GROUP BY表达式”
CASE
WHEN AVG(mov.TOTALCONSUMPTION) >0
AND AVG((moving.TOTALTIME)) >0
AND vehicle.ENERGYSOURCE= 0
THEN ROUND(AVG(mov.TOTALCONSUMPTION) / (AVG(mov.TOTALTIME)/3600), 4)
ELSE 0
END ConsumptionPerHour,
我知道错误意味着什么,但我没有Idear如何解决这个问题。 任何人都有Idear如何解决这个问题?
(如果有帮助的话,请使用Oracle sql开发人员)
编辑:
我的确切问题是我不能把它放在Where部分,因为我的SQL必须用Electro Cars计算一些东西,就像驱动的Killometers Ect。
我有燃料问题,因为我想计算平均值。 让我们说Car 1是一辆电动汽车和一辆柴油车。
1的消耗量为0(因为电动汽车)和2.消耗量为20。
我的SQL现在计算消耗总和(车1 +车2 = 20)/车辆数量: 这使得平均消耗量为10。
但我只需要所有非电动车的平均消耗量。
也许是一个noob问题,但我是一个实习生,独自一人在办公室,很抱歉,如果这是一个简单或错误解释的问题。
答案 0 :(得分:0)
好的,我找到了一个解决方案,我简单地创建了一个子选择并在此处过滤
vd.fuel = 0
无论如何,谢谢你的帮助。