以下二つのテーブル(Tabl1とTabl2)からSQLを使って複数の条件による値をカウントしたいです。
条件①Tabl1とTabl2をIDとDateで照合
条件②Tabl1のStart Timeになる前にTable2のValueの値が”最後に”5を超えた時間からStart Timeまでの時間をカウント
Tabl1
|ID|Date|Start Time|Goal Time
|:--|:--:|--:|
A|2020/2/10|2020/2/10 10:00|2020/2/10 14:00
B|2020/1/5|2020/1/5 12:00|2020/1/5 13:00
Table2
ID | Time | Value |
---|---|---|
A | 2020/2/10 5:00 | 2 |
A | 2020/2/10 6:00 | 5 |
A | 2020/2/10 7:00 | 3 |
A | 2020/2/10 8:00 | 6 |
A | 2020/2/10 9:00 | 1 |
A | 2020/2/10 10:00 | 1 |
A | 2020/2/10 11:00 | 3 |
A | 2020/2/10 12:00 | 5 |
A | 2020/2/10 13:00 | 2 |
A | 2020/2/10 14:00 | 8 |
A | 2020/2/10 15:00 | 3 |
B | 2020/1/5 8:00 | 1 |
B | 2020/1/5 9:00 | 5 |
B | 2020/1/5 10:00 | 1 |
B | 2020/1/5 11:00 | 1 |
B | 2020/1/5 12:00 | 3 |
B | 2020/1/5 13:00 | 1 |
B | 2020/1/5 14:00 | 5 |
抽出したい結果
ID | Date | ValueTime |
---|---|---|
A | 2020/2/10 | 2 |
B | 2020/1/5 | 3 |
下記のようなクエリを考えていますが、なかなかうまくできません…
SQL
1SELECT Table1.ID, Table1.Date, Count(Table2.Value) as ValueTime 2FROM Table1, Table2 3WHERE Table1.ID = Table2.ID AND Table1.Date = Format(Table2.Time,"yyyy/mm/dd") AND Table2.Time <> BETWEEN Start Time AND Goal Time 4GROUP BY Table1.ID, Table1.Date
方法をご存じの方ががいらっしゃいましたら、ぜひ教えていただけたら幸いです。よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー