语法错误案例 postgresql


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') 
嗨,我

在这种情况下遇到语法错误,你能帮我吗? :/

您不能将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)

最新更新