2014-04-29 23 views
0

我正在關注一個SQL教程,並且在這個問題中遇到了問題,我有多個具有相同順序的行# - 如何將具有相同順序的所有行合併到一行中?在多行中組合數據

例如,在屏幕截圖中,前兩行是關於「Jake Lucas」並且具有相同的順序#:我需要做些什麼才能將這兩行變爲一行?

這裏是我的代碼:

SELECT firstName || ' ' || lastname "Name", customer#, order#, quantity, 
paideach, (quantity * paideach) "TOTAL", state 

FROM orderitems JOIN orders USING (order#) JOIN customers USING (customer#) 

WHERE (state = 'FL' OR state = 'GA'); 

enter image description here

+0

你的意思combinin數據? –

+0

客戶#,訂單號永遠不會相同?並請說出它們是否一樣你想要什麼 –

+0

我的意思是,我怎樣才能將訂單號相同的所有行組合成一行? – Haque1

回答

0

我不知道你的語法格式,看來你正在使用的框架或使..

但是,如果你想結合相同的順序#那麼你可以看看GROUP BY SQL Statement ..

你可以試着把它放在WHERE子句後面,試試... WHERE (state = 'FL' OR state = 'GA') GROUP BY (order#)

更多細節: http://www.w3schools.com/sql/sql_groupby.asp

+0

我得到一個「ORA-00979:不是一個GROUP BY表達式」 – Haque1

+0

我相信這是因爲您在數量,paideach和總數上有相同的名稱,客戶編號,訂單編號。所以你有2個選項,要麼不選擇數量,paideach和總數,要麼使用聚合函數,如MAX,MIN,SUM或 數量,paideach和總數。 –

+0

如果我使用SUM,我該如何告訴它將具有相同訂單#的行的數量相加? – Haque1