2015-09-07 24 views
-2

我有表結構等,其中的LoanID爲外鍵如何在同一列中的兩個日期之間獲得天數?

 
TranID LOANID  TRANSDATE 
2   2   2013-05-01  
13   2   2013-05-10  
14   2   2013-05-15  
6   5   2013-05-01 
7   5   2013-06-10  
8   5   2013-06-14 
9   5   2013-07-01  
10   5   2013-07-10 

我需要一個查詢類似下面之間來計算天數。

 
TranID LOANID  TRANSDATE DAYS_BETWEEN 
2   2   2013-05-01 9 
13   2   2013-05-10 5 
14   2   2013-05-15 0 
6   5   2013-05-01 41 
7   5   2013-06-10 4 
8   5   2013-06-14 17 
9   5   2013-07-01 9 
10   5   2013-07-10 0 
+1

也許,您同意'2 2 2013-05-01 0 | 13 2 2013-05-10 9'? :) – splash58

回答

1

可能是自我連接,使用MIN獲取下一個日期。

SELECT t1.tranid, 
     t1.loanid, 
     t1.transdate 
     DATEDIFF(IFNULL(MIN(t2.transdate), t1.transdate), t1.transdate) AS days 
FROM some_table t1 
LEFT OUTER JOIN some_table t2 
ON t1.loanid = t2.loan_id 
AND t1.transdate < t2.transdate 
GROUP BY t1.tranid, 
     t1.loanid, 
     t1.transdate 
+0

http://sqlfiddle.com/#!9/bb3cc/2所以,它更接近:) – splash58

+0

什麼似乎不正確?唯一我能看到的是訂單,但是你沒有指定你需要的訂單。 – Kickstart

+0

強制執行命令: - http://sqlfiddle.com/#!9/bb3cc/3 – Kickstart

相關問題