SELECT
RESVID, VEHTYPE
FROM
(SELECT
dbo.T_VEH_VEHRESERVATION.RESVID,
TABLEVEHICLE.VEHTYPE, TABLEVEHICLE.VEHREGID
FROM
(SELECT
dbo.T_VEH_VEHCATEGORY.VEHBRANDNAME + N' ' + dbo.T_VEH_VEHCLASS.VEHCLASSNAME AS VEHTYPE,
dbo.T_VEH_VEHREGISTRATION.VEHREGID
FROM
dbo.T_VEH_VEHCATEGORY
WHERE
(dbo.T_VEH_VEHREGISTRATION.DELIND = 0)
) AS TABLEVEHICLE
INNER JOIN
dbo.T_VEH_VEHRESERVATION ON TABLEVEHICLE.VEHREGID = dbo.T_VEH_VEHRESERVATION.VEHREGID )
GROUP BY
dbo.T_VEH_VEHRESERVATION.RESVID
) AS TABLERESV
我想将RESVID
:33(重复行)连接成1。
这只是一个例子,当然我想要的是这个情况的每一个重复行都将得到解决。
我尝试了XML PATH功能,但根本不起作用,我不知道出了什么问题,如果对我的代码有任何帮助,我会很感激,并给我解释。
我渴望的结果:
RESVID | VEHTYPE
-------------------
33 | Proton Economic, Toyota Mid-size SUV
我的观点只有一张表
由于
答案 0 :(得分:2)
试试这样....
Select Distinct RESVID ,Stuff((Select ','+VEHTYPE from TabelName A where A.RESVID =B.RESVID
For Xml Path('')),1,1,'') as VEHTYPE from TabelName B
答案 1 :(得分:1)
尝试使用STUFF()
SELECT RESVID ,
STUFF((
SELECT ','+ VEHTYPE
FROM TABLERESV b
WHERE a.RESVID = b.RESVID
FOR XML PATH('')
)
,1,1,'') AS VEHTYPE
FROM TABLERESV a
GROUP BY a.RESVID
答案 2 :(得分:1)
这是:
SELECT B.resvid, STUFF( (SELECT ',' + A.vehtype FROM TABLE_NAME A WHERE A.resvid=B.resvid FOR XML PATH('')),1,1,'') AS CSV FROM TABLE_NAME B GROUP BY B.resvid