Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
| Author |
Topic |
|
divyaram
Posting Yak Master
180 Posts |
Posted - 2010-05-07 : 06:21:44
|
| Hi all, I have to fetched data from a table like thisBookNumber Sub_Aff_ID3678 40993678 4111 3678 41123678 41133550 1001 3550 1002But I want to show the result like thisBookNumber Sub_Aff_ID3678 4099,4111,4112,41133550 1001,1002My query is like thisselect Book_Number,Sub_Aff_ID from Sub_Book_Affliation order by Sub_Aff_IDRegards,Divya |
|
|
pk_bohra
Master Smack Fu Yak Hacker
1182 Posts |
Posted - 2010-05-07 : 06:47:04
|
| Try this:DECLARE @Sub_Book_Affliation TABLE (BookNumber INT, Sub_Aff_ID int)INSERT @Sub_Book_AffliationSELECT 3678, 4099 UNION ALLSELECT 3678, 4111 UNION ALLSELECT 3678, 4112 UNION ALLSELECT 3678, 4113 UNION ALLSELECT 3550, 1001 UNION ALLSELECT 3550, 1002 -- Show the expected outputSELECT DISTINCT s1.BookNumber, STUFF((SELECT DISTINCT TOP 100 PERCENT ',' + Cast(s2.Sub_Aff_ID as varchar) FROM @Sub_Book_Affliation AS s2 WHERE s2.BookNumber = s1.BookNumber ORDER BY ',' + Cast(s2.Sub_Aff_ID as varchar) FOR XML PATH('')), 1, 1, '') AS CODESFROM @Sub_Book_Affliation AS s1ORDER BY s1.BookNumberRegards,BohraI am here to learn from Masters and help new bees in learning. |
 |
|
|
malpashaa
Constraint Violating Yak Guru
264 Posts |
Posted - 2010-05-07 : 06:50:38
|
| Refer to this article for more information:[url]http://databases.aspfaq.com/general/how-do-i-concatenate-strings-from-a-column-into-a-single-row.html[/url] |
 |
|
|
madhivanan
Premature Yak Congratulator
22864 Posts |
Posted - 2010-05-07 : 09:23:26
|
quote: Originally posted by pk_bohra Try this:DECLARE @Sub_Book_Affliation TABLE (BookNumber INT, Sub_Aff_ID int)INSERT @Sub_Book_AffliationSELECT 3678, 4099 UNION ALLSELECT 3678, 4111 UNION ALLSELECT 3678, 4112 UNION ALLSELECT 3678, 4113 UNION ALLSELECT 3550, 1001 UNION ALLSELECT 3550, 1002 -- Show the expected outputSELECT DISTINCT s1.BookNumber, STUFF((SELECT DISTINCT TOP 100 PERCENT ',' + Cast(s2.Sub_Aff_ID as varchar) FROM @Sub_Book_Affliation AS s2 WHERE s2.BookNumber = s1.BookNumber ORDER BY ',' + Cast(s2.Sub_Aff_ID as varchar) FOR XML PATH('')), 1, 1, '') AS CODESFROM @Sub_Book_Affliation AS s1ORDER BY s1.BookNumberRegards,BohraI am here to learn from Masters and help new bees in learning.
This will work from version 2005 onwardsMadhivananFailing to plan is Planning to fail |
 |
|
|
ms65g
Constraint Violating Yak Guru
497 Posts |
Posted - 2010-05-09 : 17:56:28
|
If number of items is limited and tiny you can use a set-based approach for achieving request like this:DECLARE @T TABLE(BookNumber int,Sub_Aff_ID int,UNIQUE (BookNumber, Sub_Aff_ID));INSERT INTO @T (BookNumber, Sub_Aff_ID)SELECT 3678, 4099 UNIONSELECT 3678, 4111 UNIONSELECT 3678, 4112 UNIONSELECT 3678, 4113 UNIONSELECT 3550, 1001 UNIONSELECT 3550, 1002SELECT BookNumber, MAX(CASE WHEN rec_id = 1 THEN CAST(Sub_Aff_ID AS VARCHAR(10)) ELSE '' END) + MAX(CASE WHEN rec_id = 2 THEN ', ' + CAST(Sub_Aff_ID AS VARCHAR(10)) ELSE '' END) + MAX(CASE WHEN rec_id = 3 THEN ', ' + CAST(Sub_Aff_ID AS VARCHAR(10)) ELSE '' END) + MAX(CASE WHEN rec_id = 4 THEN ', ' + CAST(Sub_Aff_ID AS VARCHAR(10)) ELSE '' END) + MAX(CASE WHEN rec_id = 5 THEN ', ' + CAST(Sub_Aff_ID AS VARCHAR(10)) ELSE '' END) + MAX(CASE WHEN rec_id = 6 THEN ', ' + CAST(Sub_Aff_ID AS VARCHAR(10)) ELSE '' END) + MAX(CASE WHEN rec_id = 7 THEN ', ' + CAST(Sub_Aff_ID AS VARCHAR(10)) ELSE '' END) + MAX(CASE WHEN rec_id = 8 THEN ', ' + CAST(Sub_Aff_ID AS VARCHAR(10)) ELSE '' END) + MAX(CASE WHEN rec_id = 9 THEN ', ' + CAST(Sub_Aff_ID AS VARCHAR(10)) ELSE '' END) AS listFROM(SELECT BookNumber, Sub_Aff_ID, (SELECT COUNT(*) FROM @T WHERE BookNumber = t.BookNumber AND Sub_Aff_ID <= t.Sub_Aff_ID) AS rec_idFROM @T AS t)DGROUP BY BookNumber;/*BookNumber list----------- ------------------------3550 1001, 10023678 4099, 4111, 4112, 4113*/ |
 |
|
|
madhivanan
Premature Yak Congratulator
22864 Posts |
|
|
ms65g
Constraint Violating Yak Guru
497 Posts |
|
|
madhivanan
Premature Yak Congratulator
22864 Posts |
Posted - 2010-05-10 : 09:04:32
|
quote: Originally posted by ms65g
quote: Originally posted by madhivanan Also refer Quiry update methodhttp://beyondrelational.com/blogs/madhivanan/archive/2009/06/10/quirky-update-in-sql-server.aspxMadhivananFailing to plan is Planning to fail
Concatenating rows with assignment update! nice idea.Could you please say me why do we call the assignmet update to 'quirky updet' ?
The updates take place with the help of incremental values of the variableMadhivananFailing to plan is Planning to fail |
 |
|
|
|
|
|
|
|