2013-12-19 22 views
0

我有兩個由一個ID鏈接表,以及一個表有一個起始日期,而孩子(鏈接)表中有數據的每週條目。我需要能夠查詢並確定缺少一週數據的ID,而無需知道實際日期。的MySQL:需要查詢從不同的起點缺失的記錄日期

Table1 
ID INT 
START_DATE DATE 

Table2 
ID INT (foreign Key to Table 1) 
TRAN_DATE DATE 
VALUE INT 

每個INT可能有不同的開始日期和值每週保存(每星期一,星期二,等等......基於開始日期)

有些ID將錯過發佈自己的價值一個一週,而且我需要回顧歷史記錄,看看什麼時候缺少一條記錄。

假設2013年9月9日的Start_Date,日期將是(9/9/2013。9/16/2013,9/23/2013,...)我需要查看ID 1的TRAN_DATE是否爲2013年9月9日,再加入7天(2013年9月16日),並檢查該記錄,然後加入7天(2013年9月23日),並檢查存在該記錄。然後重複不同的ID。這將以當前日期或將來的任何日期結束(如果這更容易)。

我可以用一個程序做足夠簡單,但我需要在客戶站點要做到這一點,我不能分發代碼到網站,所以我需要嘗試與查詢做到這一點)。

+0

我假設你的意思是需要重複到現在爲止? –

+0

@ExplosionPills是的,繼續前進到當前日期,通過7天的一個因素。 –

回答

1

以下查詢將返回表2中的任何差距:

select distinct id 
from table2 t2 
where t2.tran_date < now() - interval 7 day and 
     not exists (select 1 
        from table2 t2a 
        where t2a.id = t2.id and 
         datediff(t2a.tran_date, t2.tran_date) = 7 
       ); 

這假定第一次交易是不缺的。那可能嗎?

+0

在我的情況下,第一次約會不應該缺少作爲初始記錄的創建。 –

相關問題