我的代码如下所示:
select distinct
HSP_ACCOUNT_ID
,TOT_ACCT_BAL
,DISCH_DATE_TIME
,UB_REV_CODE_ID
,PROC_CODE
,DATEDIFF(dd,act.DISCH_DATE_TIME,GETDATE()) as "Aging"
from HSP_ACCOUNT
where
SERV_AREA_ID = 10
and ACCT_BILLSTS_HA_C = '3' --Billed
and DISCH_DATE_TIME >= '20171024'
and TOT_ACCT_BAL is not null
and TOT_ACCT_BAL <> 0
结果如下:
HSP_ACCOUNT_ID TOT_ACCT_BAL DISCH_DATE_TIME UB_REV_CODE_ID PROC_CODE Aging
117244 830.03 10/24/2017 320 32074230 2
117244 830.03 10/24/2017 440 44008996 2
117244 830.03 10/24/2017 440 44008997 2
117244 830.03 10/24/2017 440 44008998 2
117244 830.03 10/24/2017 444 44492611 2
如何为每个UB_REV_CODE_ID
的一行填充所有不同的PROC_CODE
和Account ID
?
答案 0 :(得分:0)
Group_concat()
将完成所需的任务。
select distinct
HSP_ACCOUNT_ID
,TOT_ACCT_BAL
,DISCH_DATE_TIME
,Group_concat(Distinct UB_REV_CODE_ID separator ' ')
,Group_concat(Distinct PROC_CODE separator ' ')
,DATEDIFF(dd,act.DISCH_DATE_TIME,GETDATE()) as "Aging"
from HSP_ACCOUNT
where
SERV_AREA_ID = 10
and ACCT_BILLSTS_HA_C = '3' --Billed
and DISCH_DATE_TIME >= '20171024'
and TOT_ACCT_BAL is not null
and TOT_ACCT_BAL <> 0
Group by HSP_ACCOUNT_ID;
注意:如果所有其他列(2个代码除外)在特定帐户ID的每一行中具有相同的值,则只应使用上述解决方案。
希望它有所帮助!