我的代码如下所示:
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
填充到每个帐户 ID
的一行上?
最佳答案
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;
注意:仅当特定帐户 ID 的所有其他列(2 个代码除外)每行中具有相同的值时,您才应使用上述解决方案。
希望对你有帮助!
关于mysql - 如何在 SQL 中将多行合并为一列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46960966/