Выровнять строки результатов запроса в столбцы с разделенными запятыми значениями - PullRequest
1 голос
/ 16 марта 2011

У меня есть этот запрос:

SELECT 
    HICNo
    ,trr.CUS_ID
    ,TRRRunDate
    ,trr.LastName
    ,trr.FirstName
    ,trr.TRCCode
    ,trr.TRCDescr
    ,trr.TCCode
    ,trr.TRREffDate
    ,PBPID
    ,PriorPBPID
    ,LISLevel
    ,[LIS%]
    ,LISEffDate
    ,CONVERT (CHAR,INE_EV_DT,101) AS EventDate
    ,INE_USER_ID AS UserID
    ,tcl.TCL_TYPE_DESC AS [Description]
FROM 
    #AM_TRR_INS trr                                          
    JOIN ETLStaging.dbo.INS_INSURED ins ON trr.CUS_ID   = ins.INS_CUS_ID
    JOIN ETLStaging.dbo.INE_INSURED_EV ine ON ins.INS_ID = INE.INE_INS_ID
    JOIN ETLStaging.dbo.TCL_TYPE_CD_LOOKUP tcl ON 
            ine.INE_TYPE = tcl.TCL_TYPE_CODE
            AND tcl.TCL_ID = '12'
UNION 
(
    SELECT
        HICNo
        ,trr.CUS_ID
        ,TRRRunDate
        ,trr.LastName
        ,trr.FirstName
        ,trr.TRCCode
        ,trr.TRCDescr
        ,trr.TCCode
        ,trr.TRREffDate
        ,PBPID
        ,PriorPBPID
        ,LISLevel
        ,[LIS%]
        ,LISEffDate
        ,CONVERT (CHAR,INA_PRC_DT,101) AS EventDate
        ,ina.INA_USER_ID AS UserID
        ,tcla.TCL_TYPE_DESC AS [Description]

    FROM 
        #AM_TRR_INS trr                                          
        JOIN ETLStaging.dbo.INS_INSURED ins ON trr.CUS_ID   = ins.INS_CUS_ID
        JOIN ETLStaging.dbo.INA_INSURED_AUD ina ON ins.INS_ID= ina.INA_INS_ID
        JOIN ETLStaging.dbo.TCL_TYPE_CD_LOOKUP tcla ON 
            ina.INA_TYPE = tcla.TCL_TYPE_CODE
            AND tcla.TCL_ID = '12'  
)

, который возвращает результирующий набор следующим образом:

9876543A 123456789 02/13/2011
LASTNAME FIRSTNAME 011 Регистрация Принята как отправленная61 01.03.2011 002 NULL 02/04/2011 ЗАЯВКА НА MARKW 9876543A 123456789 02/13/2011
ФИО ИМЕНИ ФАСТРИИ 011 Регистрация принята. 61 03.01.2011 002 НУЛЬ 02/08/2011 КАРТА НОВОГО ИДЕНТИФИКАТОРА MARKW 9876543A123456789 02/13/2011
ФИО ИМЕНИ ФАБРИКИ LASTNAME 011 Регистрация принята как отправленная 61 03.01.2011 002 NULL 02/08/2011 MCSB473 ИНФОРМАЦИЯ, ОТПРАВЛЕННАЯ В CMS 9876543A 123456789 02/13/2011
ФИРМА ИМЕНИ LASTNAME в качестве подтверждения ПринятоПередано 61/01/2011 002 НЕДЕЙСТВИТЕЛЬНО 02/08/2011 MCSB475 ОТВЕТИТЬ, ПОЛУЧЕННЫЙ ОТ CMS

Я пытаюсь свести результаты к одной строке, где столбцы EventDate, UserID и Description запятыес разделителями и результаты помещаются в один ряд и просто с помощью GROUP BY, чтобы сгладить все.Я застрял - использование XML PATH и COALESCE не работают так, как я надеялся ...

1 Ответ

0 голосов
/ 27 марта 2011

Также возможно определить собственную агрегатную функцию с помощью интеграции CLR в SQL Server 2005, http://dotnetslackers.com/Community/blogs/basharkokash/archive/2008/06/07/how-to-implement-your-own-aggregate-function-in-sqlclr-sql-server-2005.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...