【发布时间】:2021-04-16 02:28:19
【问题描述】:
我正在尝试选择已接受一剂 Comirnaty 且即将接受下一剂(vac_date 为 21 天前或更早)的患者。
以下查询让我了解了所有接受过一剂 Comirnaty 的人:
SELECT NHI_id, fname, lname, vac_date
FROM Patients
NATURAL JOIN Vaccinations
NATURAL JOIN Vaccines
WHERE vaccine_name="Comirnaty"
GROUP BY NHI_id, fname, lname
HAVING count(vac_date)=1
| NHI_id | fname | lname | vac_date |
|---|---|---|---|
| 16120419 | Colette | Carey | 2021-04-15 |
| 16120427 | Aretha | Livingston | 2021-04-02 |
| 16120428 | Clayton | Marsh | 2021-03-31 |
| 16120433 | Taylor | Buckley | 2021-03-20 |
这个查询会选择除第二剂到期的人以外的所有人:
SELECT NHI_id, vac_date
FROM Vaccinations
WHERE date("now", "-21 days") <= vac_date
| NHI_id | vac_date |
|---|---|
| 16120415 | 2021-04-10 |
| 16120419 | 2021-04-15 |
| 16120420 | 2021-04-15 |
| 16120421 | 2021-04-10 |
| 16120423 | 2021-04-01 |
| 16120424 | 2021-04-02 |
| 16120425 | 2021-04-02 |
| 16120426 | 2021-04-02 |
| 16120427 | 2021-04-02 |
| 16120428 | 2021-03-31 |
| 16120428 | 2021-04-01 |
| 16120430 | 2021-04-10 |
| 16120432 | 2021-04-15 |
| 16120434 | 2021-04-15 |
| 16120435 | 2021-04-15 |
所以我尝试使用 NOT IN 将第一个查询与第二个查询结合起来,认为这应该给我正在寻找的一个案例,但我认为我忽略了一些东西?
【问题讨论】:
标签: sqlite date notin in-subquery