• koolme_85 (6/3/2015)


    i have a table in the following format

    FAFA_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)