2015-06-02 166 views
0

我在MySQL表中的數據格式如下如何根據數據中的條件填充mysql中的列?

id order_id state  time_stamp 
1  1  created 1:15 6/2/2015 
2  2  created 1:17 6/2/2015 
3  1   ack  1:18 6/2/2015 
4  1  shipped 1:20 6/2/2015 
5  1  delivered 1:25 6/2/2015 
6  2   ack  1:25 6/2/2015 
7  2  shipped 1:26 6/2/2015 
8  2  delivered 1:29 6/2/2015 

我要查詢這個數據庫得到的結果在下面的格式 -

order_id  created_ts  ack_ts   shipped_ts  delivered_ts 
1   1:15 6/2/2015 1:18 6/2/2015 1:20 6/2/2015 1:25 6/2/2015 
2   1:17 6/2/2015 1:25 6/2/2015 1:26 6/2/2015 1:29 6/2/2015 

這是可以寫爲選擇SQL查詢?請幫助查詢示例。 在此先感謝。

回答

0

也許是這樣的:

SELECT 
    order_id, 
    MAX(CASE WHEN state='created' THEN time_stamp ELSE NULL END) AS created_ts, 
    MAX(CASE WHEN state='ack' THEN time_stamp ELSE NULL END) AS ack_ts, 
    MAX(CASE WHEN state='shipped' THEN time_stamp ELSE NULL END) AS shipped_ts, 
    MAX(CASE WHEN state='delivered' THEN time_stamp ELSE NULL END) AS delivered_ts 
FROM 
    Table1 
GROUP BY 
    order_id 
相關問題