2016-06-10 94 views
-1

分隔的列表,我有以下表SQL逗號SELECT子句

表A

-------------------------- 
part no description 
----------------------- 
001  Brake 
002  Clutch 
003  Alternator 

表B

-------------------------- 
Vehicle_id brand Part_No 
----------------------- 
42   Honda  001 
34   Toyota  002 
42   Honda  003 
34   Toyota  001 

我想寫一個查詢,將返回以下

Vehicle_id brand parts 
42   Honda Brake,Alternator 

任何意見

+0

你怎麼來了,結果呢? –

+0

您使用哪個數據庫來運行此查詢。另外,請詳細說明你想達到的目標。在您的結果中,您顯示的是vehicle_id 34和品牌爲Honda,而在表b中,vehicle_id 34有兩個記錄,這兩個記錄的相應品牌都是豐田。 –

+0

對不起。更正輸出。我想在右邊表格的一個不同字段中顯示一對多記錄 –

回答

0

試試這個

SELECT B.VID, 
    B.BRND, 
    WMSYS.WM_CONCAT(A.DESCP) PARTS 
FROM 
    (SELECT 001 prtno,'Brake' Descp FROM dual 
    UNION ALL 
    SELECT 002 prtno,'Clutch' Descp FROM dual 
    UNION ALL 
    SELECT 003 prtno,'Alternator' Descp FROM dual 
)a, 
    (SELECT 42 VID,'Honda' Brnd,001 prt_no FROM dual 
    UNION ALL 
    SELECT 34 VID,'Toyota' Brnd,002 prt_no FROM dual 
    UNION ALL 
    SELECT 42 VID,'Honda' Brnd,003 prt_no FROM dual 
    UNION ALL 
    SELECT 34 VID,'Toyota' Brnd,001 prt_no FROM dual 
)b 
WHERE A.PRTNO = B.PRT_NO GROUP BY B.VID, 
    B.BRND; 
+0

這實際上不會創造更多的一排嗎?我需要一行中的所有部分名稱。更像旋轉。 –

+0

試試這個我編輯了這個問題。 –

+0

這是爲oracle RDBMS –