2014-04-07 10 views
8

Io sto cercando di fare questa query vista due tabelle e poi arrotolare ogni ID Programma in una riga con tutti i AttributeNames del AttributeNames colum insiemepiù righe in una singola riga e combinare colonna SQL

mi sono iscritto questi due tabelle e ha tirato su la giusta quantità di record.
Ora tutto ciò di cui ho bisogno per questa parte è il rollover in cui ho una riga per ProgramID e tutti gli AttributeNames "insieme in una colonna AttributeNames per ciascun id.

ESEMPIO: Tutto in una riga.

ProgramID  | AttributeNames 
887   | Studydesign, Control Groups, Primary Outcomes. 

Ecco l'immagine della vista SQL che ho bisogno di modificare in modo che fa questo: enter image description here

la query:

SELECT TOP (100) PERCENT dbo.tblProgramAttributes.ProgramID, 
     dbo.tblProgramAttributes.AttributeID AS PAattributeID, 
     dbo.tblAttributes.AttributeID, 
     dbo.tblAttributes.AttributeName 
FROM dbo.tblProgramAttributes INNER JOIN 
     dbo.tblAttributes 
ON  dbo.tblProgramAttributes.AttributeID = dbo.tblAttributes.AttributeID 
WHERE (dbo.tblProgramAttributes.AttributeID NOT LIKE '%ProgramType%') 
ORDER BY dbo.tblProgramAttributes.ProgramID DESC 
+1

Carica le immagini sul post, per favore. Senza offesa, ma non sto facendo clic su collegamenti non affidabili –

+0

@TomasPastircak, OP non ha abbastanza rappresentante per caricare le immagini. – paqogomez

+0

Vedere il seguente link: http://stackoverflow.com/questions/194852/concatenate-many-rows-into-a-single-text-string – abaldwin99

risposta

13
select ProgramId, 
stuff(
(
    select ','+ [attributename] 
    from Table1 
    where programid = t.programid for XML path('') 

),1,1,'') as AttributeNames 
from (select distinct programid 
     from Table1)t 

Guarda il mio sql fiddle

Risultati

PROGRAMID ATTRIBUTENAMES 
887   Study Design,Control Groups,Primary Outcomes 
+0

ringrazia un mazzo; Ho preso quello che hai fatto e l'ho aggiunto a quello che stavo facendo e ha funzionato. Grazie :) – user3507497

+0

Sono nuovo qui, ho fatto clic sulla freccia su il segno di spunta verde se è così che lo fai. – user3507497

+0

Cosa succede se mi sono unito a due tabelle prima di fare 'roba' – Si8

Problemi correlati