1

我有一个场景,我想要 csv 列表中两个表中的发票号码。我可以使用 Stuff 完成此操作,如下所示:

SELECT
   sopnumbe
  ,custname 
  ,Invoices = 
        STUFF((SELECT DISTINCT ', '+ RTRIM(a.sopnumbe)+', '+ RTRIM(B.sopnumbe)
               FROM 
                  SOP10100  a
                  fULL OUTER JOIN 
                  SOP30200 B
                  ON a.ORIGNUMB =B.ORIGNUMB
               WHERE a.ORIGNUMB =@ordernumb
               FOR XML PATH('')) , 1 , 1 , '' )
FROM SOP10100
WHERE
    SOPNUMBE = @ordernumb

上述查询产生正确的结果,但列表中的重复发票编号除外。有没有其他方法可以做到这一点?


if the result of simple outer join query is:

INV1527157              INV1523836        
INV1527157              INV1526475  


东西查询的结果:

K08081383206      BACHELOR CONTROLS INC    INV1527157, INV1523836, INV1527157, INV1526475

INV1527157 被重复,我想摆脱重复。

4

1 回答 1

1

您可能想从andUNION一起尝试结果,而不是完全外连接:AB

SELECT ', '+ RTRIM(sopnumbe)
FROM (SELECT sopnumbe FROM SOP10100 a WHERE a.ORIGNUMB = @ordernumb
      UNION
      SELECT sopnumbe FROM SOP30200 b WHERE b.ORIGNUMB = @ordernumb
) RESULT

这将只返回来自两个子查询的不同结果。

于 2012-05-24T21:23:42.137 回答