查找已退还nsf付款的客户

在SQL Server中,我有一个像这样的表CHANNEL

Pay_Date   acctNo    Pay_Amt    Channel
----------------------------------------
8/1/19     111       100        Phone
8/3/19     222       250        Online
8/5/19     333       75         App
8/7/19     444       85         Phone

我有表PAYMENTS

Pay_Date   acctNo    Pay_Amt    
-------------------------------
8/1/19     111       100
8/2/19     111       -100        
8/3/19     222       250        
8/5/19     333       75 
8/7/19     333       -75
8/7/19     444       85 

如何最好地联接这些表,使最终结果为表actUALS

Pay_Date   acctNo    Pay_Amt    Channel
-----------------------------------------
8/3/19     222       250        Online
8/7/19     444       85         Phone

我试图在保留付款渠道的同时从表中删除退回的付款,但是第一个表记录了所有付款,无论是否退还(在表二中用“-”表示)。

平台是SQL Server。

谢谢。

qq961279346 回答:查找已退还nsf付款的客户

列出CHANNEL没有PAYMENTS带有负Pay_Amt的地方吗?

您可以使用NOT EXISTS

SELECT *
FROM   CHANNEL c
WHERE  NOT EXISTS
       (
           SELECT *
           FROM   PAYMENTS p
           WHERE  p.AcctNo = c.AcctNo    
           AND    p.Pay_Amt < 0
       )
本文链接:https://www.f2er.com/3162247.html

大家都在问