次のように簡略化できる、特定の単位の日次レポートを含むテーブルがあります。
ユニット | ステータス | 日 1 | オン | 2016 年 3 月 10 日 2 | オン | 2016 年 3 月 10 日 3 | オン | 2016 年 3 月 10 日 4 | オン | 2016 年 3 月 10 日 1 | オフ | 2016 年 3 月 11 日 2 | オン | 2016 年 3 月 11 日 3 | オン | 2016 年 3 月 11 日 4 | オン | 2016 年 3 月 11 日 . . .
過去 7 日間に「オフ」と報告されたユニットを照会しようとしていますが、その方法がよくわかりません。クエリを次のようにしたい
SELECT
Unit,
Status,
CASE WHEN([all 7 previous days were 'Off']) THEN 'Dead' ELSE 'Alive' END
FROM unit_table a
WHERE Day = '15 Sept 2016'
そのIF句をどのように行うことができますか? 何かのようなもの
CASE WHEN(SELECT COUNT(SELECT * FROM unit_table b WHERE DAY > '08 Sept 2016' AND Status = 'Off' AND b.Unit = a.Unit) > 7)
多分?
「DAY > '08 Sept 2016」がネイティブに機能しないことは認識しています。日付の比較と更新に使用される内部関数がいくつかあります。これは説明目的のためだけにあります。