2013-05-16 223 views
1

我有一個表跟蹤應用程序的返回代碼。我想弄清楚如何格式化一個查詢來返回每一天的返回碼到一個單一的行。下面是示例表:將獨立列的多行組合成單行

ID COMPUTER RETURNCODE DATE 
-- -------- ---------- ---- 
1 computer1 0   May, 15 2013 00:00:00+0000 
2 computer1 1   May, 16 2013 00:00:00+0000 
3 computer1 1   May, 17 2013 00:00:00+0000 
4 computer2 0   May, 15 2013 00:00:00+0000 
5 computer2 4   May, 16 2013 00:00:00+0000 
6 computer2 4   May, 17 2013 00:00:00+0000 
7 computer3 0   May, 15 2013 00:00:00+0000 
8 computer3 8   May, 16 2013 00:00:00+0000 
9 computer3 0   May, 17 2013 00:00:00+0000 

這裏是我試圖讓一個查詢的輸出:

COMPUTER 2013-05-15 2013-05-16 2013-05-17 
-------- ---------- ---------- ---------- 
computer1  0    1    1 
computer2  0    4    4 
computer3  0    8    0 

我創建通過sqlfiddle這裏一個例子: SQL小提琴例:http://sqlfiddle.com/#!2/44687/1/0

任何幫助表示讚賞!

回答

0

這被稱爲「旋轉」數據。以下是在MySQL中執行此操作的一種方法:

SELECT computer, 
     max(case when date = '2013-05-15' then returncode end), 
     max(case when date = '2013-05-16' then returncode end), 
     max(case when date = '2013-05-17' then returncode end) 
FROM returncodes 
group by computer 
+0

這樣做了。謝謝!我知道這很簡單..雖然沒有考慮過關鍵點.. – user2246993