我有兩張桌子。一個表包含事件,另一個表包含一堆用戶的有效日期。左加入生效日期
user_id | date_effective | rate
U1 2015-01-01 08.00
U2 2015-01-01 09.00
U1 2015-02-01 10.00
U2 2015-02-01 11.00
U1 2015-03-01 12.00
event_id | date_event
E1 2015-01-15
E2 2015-02-15
E3 2015-03-15
我正在爲特定用戶所附的每個事件以及該用戶的該事件的生效日期提供報告。對於U1,它看起來像這樣。
event_id | date_event | rate
E1 2015-01-15 08.00
E2 2015-02-15 10.00
E3 2015-03-15 12.00
我想到的生效日期將需要按升序進行排序,所以我可以挑上左連接的第一個,這是默認的行爲。我遇到的問題是,它不會允許我做一個左連接,像這樣的時候訂購的生效日期:
SELECT event.event_id, event.event_date, effective.rate
FROM event
LEFT JOIN effective ON effective.user_id=U1
ORDER BY effective.date_effective ASC
我嘗試的另一種方法是的ON子句中使用比較運算符左加入,但沒有奏效。沒有真正期待它。
任何建議將深受讚賞!
編輯要求:對於任何事件日期,它需要向後看並找到事件日期之前的第一個生效日期。如果今天發生了昨天生效日期和一個月前生效日期的事件,則應使用昨天的生效日期。
表1中的生效日期必須與給定用戶的表2中的事件日期相匹配嗎? – 2015-02-06 03:56:29
他們不一定匹配。如果您的生效日期爲1月1日和2月1日,則2月1日之前的日期應該使用1月1日生效日期記錄。 – fiddlestacks 2015-02-06 03:57:42
好的,所以月份和年份的有效期和活動日期應該一致?您確實需要澄清要求,因爲您的示例數據並不意味着您在上面解釋的內容。 – 2015-02-06 03:59:37