2015-02-06 54 views
-1

我試圖找到從起始日期在接下來的30天內記錄#爲每個記錄我需要從start_date中統計未來30天內的記錄嗎?

我有一個表:

Patid    Start_date 
1234    1/1/2015 
1234    1/10/2015 
1234    1/30/2015 
1234    2/19/2015 
1234    3/5/2015 
1234    3/6/2015 
1234    3/7/2015 

我想編寫一個簡單的SQL查詢應該給我以下結果:

patid:   Start_Date  #of Records in Next 30 Days 
1234    1/1/2015   2 
1234    1/10/2015   2 
1234    1/30/2015   1 
1234    2/19/2015   3 
1234    3/5/2015   2 
1234    3/6/2015   1 
1234    3/7/2015   0 

最好的問候, 陽光

+0

您可能需要一個包含COUNT和WHERE的子查詢Start_Date> [當前選擇的開始日期] – 2015-02-06 20:50:15

回答

1

在通用的SQL,最簡單的方法是用相關子查詢:

select t.*, 
     (select count(*) 
     from table t2 
     where t2.patid = t.patid and 
       t2.start_date > t.start_date and 
       t2.start_date <= t.start_date + interval '30 days' 
     ) as Next30Days 
from table t; 

這對於日期算術使用ANSI標準語法 - 主要在違規中觀察到的標準。每個數據庫似乎都有自己的按摩日期規則。

相關問題