我试图从一个表返回帐户数据,从另一个表返回金融交易日期。我的现有查询返回帐户具有匹配的金融事务时所需的所有数据,但我还需要从Account表返回记录(组),因为在帐户表中没有匹配的金融transactions...either,因为开始时没有金融事务,或者因为我只是在寻找某种类型的金融事务。
这是我现有的查询和结果。我还期望(或试图)看到每个PaymentVendor中没有集合的行。SELECT t.PaymentVendor, COUNT(t.AccountId) AS Accounts, SUM(t.TransactionAmount \* -1) AS Collections from dbo.RawTransactionData t JOIN dbo.RawAccountData a on t.AccountId = a.AccountId WHERE t.TransactionDate \>= a.AddressDate AND t.TransactionType = 'FOR' AND t.TransactionStatus = 'U' GROUP BY t.PaymentVendor

下面是我的查询是如何开始的:
SELECT t.paymentvendor, t.accountid, t.transactiondate,
t.transactionamount, t.transactionstatus, t.transactiontype
FROM dbo.RawTransactionData t
JOIN dbo.RawAccountData a on a.accountid = t.accountid
WHERE t.TransactionType = 'FOR'
AND t.TransactionStatus = 'U'
AND a.AddressDate IS NOT NULL
AND t.TransactionDate > a.AddressDate我希望找到一种方法来返回所有符合标准的帐户记录(即使没有匹配的交易)。
发布于 2022-03-28 23:32:52
在这些场景中,您可以使用左联接,左边的表是您希望包含的所有行:
SELECT t.PaymentVendor, COUNT(t.AccountId) AS Accounts, SUM(t.TransactionAmount * -1) AS Collections
from
dbo.RawAccountData a
LEFT JOIN
dbo.RawTransactionData t
on t.AccountId = a.AccountId
AND t.TransactionDate >= a.AddressDate
AND t.TransactionType = 'FOR'
AND t.TransactionStatus = 'U'
GROUP BY t.PaymentVendorhttps://stackoverflow.com/questions/71654585
复制相似问题