AccessのSQLで異なる二つの条件の合計を抽出したいです。
具体的には、下記table1の'score'値の合計を'id'をキーとしてtable2の'start'と'goal'に含まれる場合と含まれない場合でそれぞれ取得したいです。
table1
id | time | score |
---|---|---|
A | 23 | 2 |
A | 30 | 3 |
B | 15 | 1 |
B | 20 | 4 |
C | 35 | 5 |
C | 10 | 2 |
C | 20 | 3 |
table2
id | start | goal |
---|---|---|
A | 20 | 25 |
B | 16 | 30 |
C | 5 | 15 |
出力したい結果
id | OK_score | NO_score |
---|---|---|
A | 2 | 3 |
B | 4 | 1 |
C | 2 | 8 |
下記のようなクエリを考えていますが、なかなかうまくできません…
SQL
1SELECT table1.id, TA.SUM(score) AS OK_score, TB.SUM(score) AS NO_score 2FROM table1 3(WHERE table1.time BETWEEN table2.start AND table2.goal ) AS TA 4INNER JOIN 5(WHERE table1.time NOT BETWEEN table2.start AND table2.goal ) AS TB 6ON TA.id = TB.id 7GROUP BY table1.id 8
また、以前似たようなご質問をさせて頂いたときに、クロス集計クエリを使えばできることを教わりましたが、上記のsqlのようにクロス集計クエリを使わないで行える方法をご存じの方ががいらっしゃいましたら、ぜひ教えていただけたら幸いです。よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/29 08:50