我有一张表格,其中包含给定单位的每日报告,可以简化为:
单位 | 状态 | 天 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'' 不能在本地工作,有一些内部函数用于比较和更新日期。这只是为了解释的目的。