2010-07-06 6 views

Répondre

1

Je ne sais pas comment/si cela peut être fait avec XML RAW. Cette approche fonctionne dans SQL2000 cependant.

DECLARE @Data varchar(8000) 
set @Data ='' 
select @Data = @Data + Data 
FROM @t 
ORDER BY Data 

SELECT @Data 

Modifier Oh, je viens de voir votre autre question où Cade vous a donné un lien. Est-ce que KM's answer sur ce lien ne fonctionne pas pour vous?

la requête de test KM

--combine parent and child, children are CSV onto parent row 
CREATE TABLE #TableA (RowID int, Value1 varchar(5), Value2 varchar(5)) 
INSERT INTO #TableA VALUES (1,'aaaaa','A') 
INSERT INTO #TableA VALUES (2,'bbbbb','B') 
INSERT INTO #TableA VALUES (3,'ccccc','C') 

CREATE TABLE #TableB (RowID int, TypeOf varchar(10)) 
INSERT INTO #TableB VALUES (1,'wood') 
INSERT INTO #TableB VALUES (2,'wood') 
INSERT INTO #TableB VALUES (2,'steel') 
INSERT INTO #TableB VALUES (2,'rock') 
INSERT INTO #TableB VALUES (3,'plastic') 
INSERT INTO #TableB VALUES (3,'paper') 

SELECT 
    a.*,dt.CombinedValue 
    FROM #TableA  a 
     LEFT OUTER JOIN (SELECT 
          c1.RowID 
           ,STUFF(REPLACE(REPLACE(
              (SELECT 
               ', ' + TypeOf as value 
               FROM (SELECT 
                 a.RowID,a.Value1,a.Value2,b.TypeOf 
                 FROM #TableA     a 
                  LEFT OUTER JOIN #TableB b ON a.RowID=b.RowID 
                ) c2 
               WHERE c2.rowid=c1.rowid 
               ORDER BY c1.RowID, TypeOf 
               FOR XML RAW 
             ) 
             ,'<row value="',''),'"/>','') 
            , 1, 2, '') AS CombinedValue 
          FROM (SELECT 
             a.RowID,a.Value1,a.Value2,b.TypeOf 
             FROM #TableA     a 
              LEFT OUTER JOIN #TableB b ON a.RowID=b.RowID 
           ) c1 
          GROUP BY RowID 
         ) dt ON a.RowID=dt.RowID 
+0

peut être fait que je ne suis pas en mesure de mettre la solution de KM correctement dans mon programme .. pourriez-vous aider pls – learner

+0

Je n'ai pas SQL2000 installé. Pouvez-vous confirmer si le code de la réponse de KM fonctionne sur SQL2000 lorsque vous l'exécutez non modifié? –

+0

qu'est-ce que '' – learner

Questions connexes