将多行汇总为SQL Server数据的单个行和列

时间:2018-12-12 06:56:42

标签: sql sql-server

我想要将多行添加到单个行和列中,并且我正在使用MICROSOFT SQL Server。我尝试了stst命令,但出现错误无法绑定多部分标识符“”。请帮忙!谢谢

select a.CLAIMNO, e.INVNO, d.MSISDN, a.BATCHNO, b.CUSTOMER, b. PRODNO, 
b.INCENTIVE, b.QTY, b.STATUS, 
b.ROWNUM, b.RECEIVEDBY, b.RECEIVEDDATE, b.REMARKS, b.PESOVALUE
from CSPC_CLAIMHDR a
left join CSPC_CLAIMDTL b on a.PRFNO = b.PRFNO and a.CLAIMNO = b.CLAIMNO 
left join CSPC_CUSTOMERS c on c.CUSTNAME = b.CUSTOMER 
left join CSPC_PMACCOUNT d on d.CUSTCODE = c.CUSTCODE 
left join CSPC_INVOICEHDR e on e.CLAIMNO = a.CLAIMNO
where upper(a.PRFNO) = 'MOM--0108' and b.INCENTIVE not like '%POINTS%' and 
a.APPROVEDBY is not null order by b.CUSTOMER

这产生 [结果] [1]

CLAIMNO   INVNO 
618       SO202
618       SO213
618       SO932
618       SO133
618       SO873
658       SO123
658       SO877

我希望它能像下面这样产生它。

CLAIMNO   INVNO
618       SO202,SO213,SO932,SO133,SO873
658       SO123,SO877

1 个答案:

答案 0 :(得分:1)

您的声明以

开头
SELECT a.CLAIMNO, STUFF((...inner select query that aliases table a...))

内部选择查询为表a加上别名,而不是外部选择查询。 A.claimno在sql处理到该外部级别时不存在/不存在

这是一个更简单的示例:

select a.thing, (select a.otherthing from table a)

a。括号之外不存在任何内容。这些有效

目前还不清楚您要做什么,所以我无法建议您应该怎样做才能达到想要的结果,我只能回答为什么会出现此错误

最好删除外部查询,然后进行调用并将内部查询作为一个 new 问题发布,其中“这会产生(粘贴结果),我希望它能产生(产生所需的结果),请提供帮助”。