2016-06-10 39 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 –