2010-05-16 29 views
1

我有三列的表:如何查詢SQL中最近的日期和值?

  • patient_id
  • obs_date
  • weight_val

patient_id賣場患者識別#,weight_val存儲的權重值,並obs_date存儲時的日期體重讀數。所以,病人可以在不同的日期有許多不同的體重讀數。

如何編寫一個查詢:

選擇其最後的重量讀數爲> 120的患者?

回答

1

關閉我的頭頂,請原諒任何語法錯誤

Select tbl.* 
From le_table tbl 
Inner Join (
    Select patient_id, Max(obs_date) obs_date 
    From le_table 
    Group By patient_id 
) t2 
On tbl.patient_id = t2.patient_id 
    and tbl.obs_date = t2.obs_date 
Where tbl.weight_val > 120 

基本上你需要加入到含有每名患者的最大觀測日期(病人ID和OBS日期)的子集。一旦你只有最近的讀數,每個病人,你可以檢查重量> 120