我有一個問題,結合SQL查詢應該顯示我最近(前一個和下一個)從CURDATE()
日期。SQL查詢得到最近的前一個和下一個日期?
我有表與客戶表女巫事件
表與客戶:
konto_odbiorcy | name
---------------+----------------
2 | Sony LTD
3 | Panasonic LTD
etc...
這是我已經得到了在表事件:
number | date
-------+-------------
2 | 2016-11-01
2 | 2016-11-06
2 | 2016-11-14
3 | 2016-11-02
3 | 2016-11-21
3 | 2016-11-26
我需要知道什麼是最近的過去日期和下一個最近的未來日期,如:
number | date past | date future
-------+-------------+-------------
2 | 2016-11-06 | 2016-11-14
3 | 2016-11-02 | 2016-11-21
正如你看到的,對於number=3
告訴我2016-11-21
不2016-11-26
當我想表明過去的最近日期:
SELECT number, date AS past
FROM 3ce_event
WHERE date <= CURDATE()
爲下一個事件:
SELECT number, date AS future
FROM 3ce_event
WHERE date >= CURDATE()
現在如何比較這兩與我的客戶表在一個SQL查詢?
編輯
我改變了我的查詢邁克答案:
select
number, klienci_ax_all.nazwa, miasto,
max(case when date<=curdate() then date end) as date_past,
min(case when date>=curdate() then date end) as date_future
from 3ce_event
inner join klienci_ax_all on 3ce_event.number = klienci_ax_all.konto_odbiorcy
group by konto_odbiorcy
看起來非常好,但我有問題,我的客戶表(klienci_ax_all
)。如果對於一個或多個客戶,3ce_event
表中沒有任何內容,我沒有將此客戶記爲Null
date_past和Null
date_future。
我需要從klienci_ax_all
的客戶的完整列表,然後過去和未來的數據,如果存在...任何幫助?要做到這一點
我編輯了我的文章...你能檢查嗎?我想我亂搞JOIN選項:( –
@ Triple_6將'INNER JOIN'改爲'RIGHT JOIN' – Mike
我知道:)。非常感謝您的幫助!現在是完美的。 –