我有一個ORDER_STATUS表所示:如何編寫查詢來根據條件檢查另一個表?
order_id order_status
1 100
2 1000
3 1000
我有存儲歷史數據,以便另一個表order_status_history:
id order_id order_status status_date
1 1 100 2016-01-01
2 2 100 2016-02-01
3 2 300 2016-04-01
4 3 100 2016-04-01
5 3 400 2016-04-01
6 3 1000 2016-04-01
7 2 1000 2016-05-01
我想建立一個每日報告,對於給定的日期,我想看看訂單是否已完成或正在進行。我對SQL很不好,不知道如何去做。如果某個日期的訂單狀態爲< 1000,則表示正在進行,否則結束。
例如:對於日期2016年4月1日,該報告將是:
order_id status
1 in-progress (because as of report date, its latest status is 100)
2 in-progress (because as of report date, its latest status is 300)
3 completed (because as of report date, its latest status is 1000)
我試圖像下面的嘗試正在進行的訂單至少找到的東西:
select distinct s.order_id, s.order_status
from order_status
left join order_status_history h on h.order_id = s.order_id
where max(h.status_date) <'2016-04-01'
and status < 1000
任何非常感謝幫助!
order_status表中的當前狀態是否也在歷史表上? – Shadow
'order_status'表格並沒有什麼意義。 –