select utilizzo.dataconsegna case when utilizzo.dataconsegna<=current_timestamp
then sum((EXTRACT(epoch FROM utilizzo.dataconsegna)::integer)-(EXTRACT(epoch FROM utilizzo.dataritiro)::integer)/36000)
else sum(((EXTRACT(epoch FROM utilizzo.dataconsegna)::integer)-((EXTRACT(epoch FROM utilizzo.dataconsegna)::integer)-(EXTRACT(epoch FROM current_timestamp)::integer)))-
(EXTRACT(epoch FROM utilizzo.dataritiro)::integer))/36000
end
from vettura join prenotazione on prenotazione.targa=vettura.targa
join utilizzo on utilizzo.smartcard=prenotazione.smartcard AND utilizzo.dataora=prenotazione.dataora
where vettura.targa='cn533sr' AND(current_timestamp-prenotazione.dataritiro<=interval '7 days')
嗨,我在这个案子上遇到语法错误,你能帮帮我吗? :/
答案 0 :(得分:0)
您无法将sum()
放入 case
。
您需要对案例的结果求和:
sum(case
when utilizzo.dataconsegna<=current_timestamp
then (EXTRACT(epoch FROM utilizzo.dataconsegna)::integer)-(EXTRACT(epoch FROM utilizzo.dataritiro)::integer)/36000
else ((EXTRACT(epoch FROM utilizzo.dataconsegna)::integer)-((EXTRACT(epoch FROM utilizzo.dataconsegna)::integer)-(EXTRACT(epoch FROM current_timestamp)::integer)))-
(EXTRACT(epoch FROM utilizzo.dataritiro)::integer)/36000
end)