Click here to Skip to main content
15,885,767 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I have to program a sql procedure to get a result, the result will concatenate all fields of the different records, what i have is a view, in this view number of records has the same ID then I have to return of this format
ID   F
1    1
1    2
1    3
1    4
1    5


may i have more repetition or ID or less so the f's must be as much I have repetitions
ID   f1   f2   f3 f4  f5
1     1    2   3   4   5
Posted
Updated 8-Nov-12 7:30am
v2

1 solution

Try this:
SQL
DECLARE @cols NVARCHAR(200)
DECLARE @dt NVARCHAR(1000)
DECLARE @pt NVARCHAR(2000)

SET @cols = STUFF((SELECT DISTINCT '],[' + F
					FROM YourDataBase 
					ORDER BY '],[' + F
			FOR XML PATH('')),1,2,'') + ']'

SET @dt = 'SELECT * ' +
        'FROM YourTable'

SET @pt = 'SELECT ID, ' + @cols + ' ' +
        'FROM (' + @dt + ') AS DT ' +
        'PIVOT(MAX(F) FOR(ID) IN (' + @cols + ')) AS PT ' +
        'ORDER BY ID'
EXEC (@pt)
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900