koolme_85 (6/3/2015)
i have a table in the following formatFAFA_TypePIDFirstNameMiddleNameLastNameSplitNamesUserLogonImpersFirstNameImpersMiddleNameImpersLastNameprsn_position_descacc_id
82P5 pri56785fnmem nameL nameJeanette RaylesJRAYLESJeanetteLeaRaylesBranch Manager68597050
82P5 pri56785fnmem nameL nameJeanette RaylesJRAYLESJeanetteLeaRaylesBranch Manager68597051
82P5 pri56785fnmem nameL nameJeanette RaylesJRAYLESJeanetteLeaRaylesBranch Manager68597052
82P5 pri56785fnmem nameL nameJeanette RaylesJRAYLESJeanetteLeaRaylesBranch Manager68597053
82P5 pri56785fnmem nameL nameJeanette RaylesJRAYLESJeanetteLeaRaylesBranch Manager68597054
82P5 pri56785fnmem nameL nameJeanette RaylesJRAYLESJeanetteLeaRaylesBranch Manager68597055
82P5 pri56785fnmem nameL nameJeanette RaylesJRAYLESJeanetteLeaRaylesBranch Manager68597056
82P5 pri56785fnmem nameL nameJeanette RaylesJRAYLESJeanetteLeaRaylesBranch Manager68597057
82P5 pri56785fnmem nameL nameJeanette RaylesJRAYLESJeanetteLeaRaylesBranch Manager68597058
82P5 pri56785fnmem nameL nameJeanette RaylesJRAYLESJeanetteLeaRaylesBranch Manager68597059
1W53 spl32220BasilBasilHarrisBRUCE HARRISCHARRISBasilBasilHarrisBranch Manager68597060
1W53 spl32220BasilBasilHarrisBRUCE HARRISCHARRISBasilBasilHarrisBranch Manager68597061
1W53 spl32220BasilBasilHarrisBRUCE HARRISCHARRISBasilBasilHarrisBranch Manager68597062
1W53 spl32220BasilBasilHarrisBRUCE HARRISCHARRISBasilBasilHarrisBranch Manager68597063
1W53 spl32220BasilBasilHarrisBRUCE HARRISCHARRISBasilBasilHarrisBranch Manager68597064
1W53 spl32220BasilBasilHarrisBRUCE HARRISCHARRISBasilBasilHarrisBranch Manager68597065
1W53 spl32220BasilBasilHarrisBRUCE HARRISCHARRISBasilBasilHarrisBranch Manager68597066
1W53 spl32220BasilBasilHarrisBRUCE HARRISCHARRISBasilBasilHarrisBranch Manager68597067
1W53 spl32220BasilBasilHarrisBRUCE HARRISCHARRISBasilBasilHarrisBranch Manager68597068
1W53 spl32220BasilBasilHarrisBRUCE HARRISCHARRISBasilBasilHarrisBranch Manager68597069
1W53 spl32220BasilBasilHarrisBRUCE HARRISCHARRISBasilBasilHarrisBranch Manager68597070
1W53 spl32220BasilBasilHarrisBRUCE HARRISCHARRISBasilBasilHarrisBranch Manager68597071
1W53 spl32220BasilBasilHarrisBRUCE HARRISCHARRISBasilBasilHarrisBranch Manager68597072
I am trying to get it change to the following way
FAFA_TypePIDFirstNameMiddleNameLastNameSplitNamesUserLogonImpersFirstNameImpersMiddleNameImpersLastNameprsn_position_descacc_id
82P5 pri56785fnmem nameL nameJeanette RaylesJRAYLESJeanetteLeaRaylesBranch Manager68597050,68597051,68597052....,,.68597059
1W53 spl32220BasilBasilHarrisBRUCE HARRISCHARRISBasilBasilHarrisBranch Manager68597060,68597061,68597062,68597063...,,,..68597072
so the only column that's not duplicate is the account number as you can see above
I am trying to get those multiple accounts into a single record by comma separation
how can I achieve this (any example would help)
thanks
You can definitely use FOR XML PATH(''), as follows:
WITH TEST_DATA AS (
SELECT '82P5' AS FA, 'pri' AS FA_Type, 56785 AS PID, 'fnme' AS FirstName, 'm name' AS MiddleName,'L name' AS LastName, 'Jeanette Rayles' AS SplitNames,
'JRAYLES' AS UserLogon, 'Jeanette' AS ImpersFirstName, 'Lea' AS ImpersMiddleName, 'Rayles' AS ImpersLastName, 'Branch Manager' AS prsn_position_desc,
68597050 AS acc_id UNION ALL
SELECT '82P5','pri',56785,'fnme','m name','L name','Jeanette Rayles','JRAYLES','Jeanette','Lea','Rayles','Branch Manager',68597051 UNION ALL
SELECT '82P5','pri',56785,'fnme','m name','L name','Jeanette Rayles','JRAYLES','Jeanette','Lea','Rayles','Branch Manager',68597052 UNION ALL
SELECT '82P5','pri',56785,'fnme','m name','L name','Jeanette Rayles','JRAYLES','Jeanette','Lea','Rayles','Branch Manager',68597053 UNION ALL
SELECT '82P5','pri',56785,'fnme','m name','L name','Jeanette Rayles','JRAYLES','Jeanette','Lea','Rayles','Branch Manager',68597054 UNION ALL
SELECT '82P5','pri',56785,'fnme','m name','L name','Jeanette Rayles','JRAYLES','Jeanette','Lea','Rayles','Branch Manager',68597055 UNION ALL
SELECT '82P5','pri',56785,'fnme','m name','L name','Jeanette Rayles','JRAYLES','Jeanette','Lea','Rayles','Branch Manager',68597056 UNION ALL
SELECT '82P5','pri',56785,'fnme','m name','L name','Jeanette Rayles','JRAYLES','Jeanette','Lea','Rayles','Branch Manager',68597057 UNION ALL
SELECT '82P5','pri',56785,'fnme','m name','L name','Jeanette Rayles','JRAYLES','Jeanette','Lea','Rayles','Branch Manager',68597058 UNION ALL
SELECT '82P5','pri',56785,'fnme','m name','L name','Jeanette Rayles','JRAYLES','Jeanette','Lea','Rayles','Branch Manager',68597059 UNION ALL
SELECT '1W53','spl',32220,'Basil','Basil','Harris','BRUCE HARRIS','CHARRIS','Basil','Basil','Harris','Branch Manager',68597060 UNION ALL
SELECT '1W53','spl',32220,'Basil','Basil','Harris','BRUCE HARRIS','CHARRIS','Basil','Basil','Harris','Branch Manager',68597061 UNION ALL
SELECT '1W53','spl',32220,'Basil','Basil','Harris','BRUCE HARRIS','CHARRIS','Basil','Basil','Harris','Branch Manager',68597062 UNION ALL
SELECT '1W53','spl',32220,'Basil','Basil','Harris','BRUCE HARRIS','CHARRIS','Basil','Basil','Harris','Branch Manager',68597063 UNION ALL
SELECT '1W53','spl',32220,'Basil','Basil','Harris','BRUCE HARRIS','CHARRIS','Basil','Basil','Harris','Branch Manager',68597064 UNION ALL
SELECT '1W53','spl',32220,'Basil','Basil','Harris','BRUCE HARRIS','CHARRIS','Basil','Basil','Harris','Branch Manager',68597065 UNION ALL
SELECT '1W53','spl',32220,'Basil','Basil','Harris','BRUCE HARRIS','CHARRIS','Basil','Basil','Harris','Branch Manager',68597066 UNION ALL
SELECT '1W53','spl',32220,'Basil','Basil','Harris','BRUCE HARRIS','CHARRIS','Basil','Basil','Harris','Branch Manager',68597067 UNION ALL
SELECT '1W53','spl',32220,'Basil','Basil','Harris','BRUCE HARRIS','CHARRIS','Basil','Basil','Harris','Branch Manager',68597068 UNION ALL
SELECT '1W53','spl',32220,'Basil','Basil','Harris','BRUCE HARRIS','CHARRIS','Basil','Basil','Harris','Branch Manager',68597069 UNION ALL
SELECT '1W53','spl',32220,'Basil','Basil','Harris','BRUCE HARRIS','CHARRIS','Basil','Basil','Harris','Branch Manager',68597070 UNION ALL
SELECT '1W53','spl',32220,'Basil','Basil','Harris','BRUCE HARRIS','CHARRIS','Basil','Basil','Harris','Branch Manager',68597071 UNION ALL
SELECT '1W53','spl',32220,'Basil','Basil','Harris','BRUCE HARRIS','CHARRIS','Basil','Basil','Harris','Branch Manager',68597072
),
GROUPED_DATA AS (
SELECT T.FA, T.FA_Type, T.PID, T.FirstName, T.MiddleName, T.LastName, T.SplitNames, T.UserLogon,
T.ImpersFirstName, T.ImpersMiddleName, T.ImpersLastName, T.prsn_position_desc
FROM TEST_DATA AS T
GROUP BY T.FA, T.FA_Type, T.PID, T.FirstName, T.MiddleName, T.LastName, T.SplitNames, T.UserLogon,
T.ImpersFirstName, T.ImpersMiddleName, T.ImpersLastName, T.prsn_position_desc
)
SELECT G.*,
STUFF(
(SELECT ',' + CAST(T.acc_id AS varchar(9)) AS [text()]
--Add a comma (,) before each value
FROM TEST_DATA AS T
WHERE T.FA = G.FA
FOR XML PATH('') -- Select it as XML
)
, 1, 1, '' ) AS ACC_ID_LIST
-- Remove that first comma via STUFF
FROM GROUPED_DATA AS G
You may need to adjust the GROUPED_DATA CTE's GROUP BY clause to use the proper grouping level, but this should give you what you're looking for. You can find some more info on it's usage here:
http://sqlandme.com/2011/04/27/tsql-concatenate-rows-using-for-xml-path/[/url]
Steve (aka sgmunson) 🙂 🙂 🙂
Rent Servers for Income (picks and shovels strategy)