1
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

我的视野中只有一张桌子

在此处输入图像描述

谢谢

4

3 回答 3

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
于 2013-06-18T03:40:52.027 回答
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 
于 2013-06-18T04:37:28.680 回答
1

尝试这个:

选择 B.resvid,东西(
(SELECT ',' + A.vehtype
FROM TABLE_NAME A
WHERE A.resvid=B.resvid
FOR XML PATH('')),1,1,'') 作为 CSV
FROM TABLE_NAME B
B.resvid 分组

于 2013-06-18T06:17:14.520 回答