我有一个包含id,postDate,account,debit,credit columns的Transaction表。
在SQL Server中,我尝试编写一个联合或联接查询,以突出显示此表中的不平衡。不平衡被定义为对另一个帐户没有相应借记的帐户的任何信用。这个表有数百万行,有些事务是重复的,需要根据具体情况删除,但我需要一个突出显示它们的查询。
我从这里开始以工会为起点。如何突出不平衡的细节是我需要的。如果记录重复,我基本上想在行上有一个指示符。我也想在查询中添加一个运行余额列...如果我采取的方法是天真的,那是因为我是高级加入的新手。我已经删除了列,但是硬编码的字符串数据。
SELECT id,
b.account,
b.credit,
b.debit,
b.duplicate
FROM (SELECT t.id,
t.account,
t.credit,
t.debit,
'false' as duplicate
FROM TransactionRegister t
UNION ALL
SELECT t.id,
t.account,
t.debit,
t.credit,
'false' as duplicate
FROM TransactionRegister t ) AS b order by id desc
以下是该表或两个事务的示例。通常,一个帐户的借记交易将始终与另一个帐户具有匹配的信用。我只是想显示没有匹配借记的信用,反之亦然,让用户决定做什么或者是否合法。在这个系统中,似乎匹配事务始终是序列中的下一个数字,但我不能完全确定100%的情况。在百万条记录中,如果用户看到100个不平衡的记录,他们可以轻松地消化它。
ID|Date|Account|Credit|Debit
1|01/22/2018,22222,13500,0
2|01/22/2018,11111,0,13500