SQL Server借记,信用查询不平衡

时间:2018-02-04 14:13:53

标签: sql sql-server join union

我有一个包含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

0 个答案:

没有答案