我有一个病人数据库。以他们的 Patient_ID 作为标识符,并具有多个药物和操作的 Start_Date 和 Stop_Date。
我的问题是如何查询
WHERE action = 1 and start_date BETWEEN '01/10/2012' and '01/10/2013'
and where action = 1 is their FIRST Start_date
治疗表:
Patient_ID
Start_Date Varchar
Stope_Date Varchar
Action Varchar
代码:1 = 开始;2 = 停止;3 = 改变
喜欢:
Patient_ID | Medication_Code |Action| Start_Date | Stop_Date
10001 | Med008 | 2 | 01/01/2010 | 10/08/2012
| Med012 | 1 | 02/09/2013 |
| Med088 | 1 | 22/07/2009 |
10002 | Med003 | 2 | 01/01/2009 | 01/03/2011
| Med012 | 1 | 02/03/2012 |
| Med081 | 1 | 22/07/2013
10011 | Med018 | 2 | 11/02/2010 | 10/08/2012
| Med011 | 1 | 12/09/2013 |
| Med028 | 1 | 25/03/2013
您将观察到患者有多个 start_dates。如果我将使用类似的东西
where start_date between 01/01/2012 and 01/01/2013 and action = 1
它会给我所有action =1 and between 01/01/2012 and 01/01/2013
,即使它不是他们拥有的第一个 Start_date。
所以在这个例子中,如果它是一个工作脚本
Select patient_ID, Start_Date, Action, Medication_code
from Patient
Where start_date EARLIEST 01/01/2012 and 01/01/2013 and action = 1
想要的输出:
10002 22/07/2013 1 Med081
10011 25/03/2013 1 Med028
在此先感谢...我将随时待命。