次のスクリプトがあります-
select sum(duration) as duration from opr
where op in ('GRC','GCQ')
and timestamp between '20130101000000' and '20130930235959'
値を受け取ります - 34459298秒。これらの制限を含めたいと思います - 期間は
<= '18000000' (秒) は 0.14 に乗算する必要があります
> '18000000' と <= '27000000' の間の期間は、0.11 に乗算する必要があります
期間 > '27000000' は 0.09 に乗算する必要があります
私はこのケースステートメントで試しました -
case when duration <= '18000000'
then (duration)*0.14
when duration > '18000000' and duration <= '27000000'
then (duration)*0.11
when duration > '27000000'
then (duration)*0.09
else 0 end as bal
ただし、この値は34459298を 0.09 に掛けたものを受け取ります。これは、「27000000」よりも大きいためです。これは意図的ではありません。アイデアは、これら 2 つの演算 ('GRC'、'GCQ') が上記の値で乗算されたすべての秒数です。
これを行うのを手伝っていただけますか?