【发布时间】:2011-07-16 04:22:30
【问题描述】:
我有这个问题:
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 03/01/2011 002 NULL 02/04/2011 MARKW 申请 9876543A 123456789 02/13/2011
LASTNAME FIRSTNAME 011 报名接受为提交 61 03/01/2011 002 NULL 02/08/2011 MARKW 新身份证 9876543A 123456789 02/13/2011
LASTNAME FIRSTNAME 011 报名接受为提交 61 03/01/2011 002 NULL 02/08/2011 MCSB473 信息 发送至 CMS 9876543A 123456789 02/13/2011
LASTNAME FIRSTNAME 011 报名接受为提交 61 03/01/2011 002 NULL 02/08/2011 MCSB475 收到回复 来自 CMS
我正在尝试将结果扁平化为一行,其中 EventDate、UserID 和 Description 列以逗号分隔,并且结果适合一行,并且仅使用 GROUP BY 来扁平化所有内容。我被困住了——使用 XML PATH 和 COALESCE 并没有像我希望的那样工作......
【问题讨论】:
-
也发布所需的输出,包括格式。例如会是 {eventdate,userid,description;eventdate,userid,description;...} 在单列中吗?
标签: sql sql-server sql-server-2005 tsql pivot