2012-07-19 322 views
1

我有兩個表,其中一個包含日期(startdate和EndDate)和費率,另一個事務表包含日期和金額。我希望在交易表中的startdate和enddate之間獲得交易,並將它們的匯率除以該期間。我只想使用物品代碼1。例如SQL日期範圍計算

表率

startdate enddate  rate  item 
2011-01-01 2011-01-03 40.00 1 
2011-01-07 2011-01-10 10.00 1 
2011-01-07 2011-01-10 10.00 2 

表事務

date   Amount 
2011-01-01  500.00 
2011-01-02  160.00 
2011-01-02  140.00 
2011-01-03  600.00 
2011-01-07  920.00 
2011-01-10  1600.00 

結果

date   Amount 
2011-01-01  500.00/40 
2011-01-02  160.00/40 
2011-01-02  140.00/40 
2011-01-03  600.00/40 
2011-01-07  920.00/10 
2011-01-10  1600.00/10 
+0

我只想使用第1項。 – user1446930 2012-07-19 21:18:11

回答

0
SELECT t.date, t.Amount/r.Rate AS Amount 
FROM Transaction t 
INNER JOIN rate r ON t.date>=r.startdate and t.date <=r.enddate 

你可以使用之間,但在某些DBMS,如果我不是錯了,它是獨家...

0

您可以通過簡單的連接來完成此操作。由於您使用的是日期(沒有時間),並在費率表中包含結束日期,因此應執行以下操作:

select t.date, t.amount/r.rate 
from transaction t left outer join 
    rates r 
    on t.date between r.startdate and r.enddate