ほとんどのデータベースでは、case ステートメントを使用します。
select (case when value >= 40 then '40+'
when value >= 30 then '30+'
when value >= 20 then '20+'
when value > 10 then '10+'
end)
残念ながら、MS-Access はこのケースをサポートしていないため、iif
代わりに次を使用する必要があります。
最も簡単な方法は、式をサブクエリに入れることです。
select valuegroup, sum(win)
from (select t.*,
iif(value > 40, '40+',
iif(value > 30, '30+',
iif(value > 20, '20+',
iif(value > 10, '10+', '<10'
)))) as valuegroup
from t
) t
group by valuegroup
現在の合計を取得するには、自己結合を行う必要があります。ばかげていますが、Access にはウィンドウ関数がありません。
select valuegroup, sum(cumwin)
from (select t.*, sum(t2.win) as cumwin,
iif(t.value > 40, '40+',
iift.(value > 30, '30+',
iif(t.value > 20, '20+',
iif(t.value > 10, '10+', '<10'
)))) as valuegroup
from t join
t t2
on t.value <= t2.value
group by t.value
) t
group by valuegroup
MS Accessで外側のクエリを入力できない場合は、式全体を入力する必要がありますvaluegroup
。group by