我在Access中有一个查询,该查询返回所有客户的交易
字段是

TransID,TenantID,TransactionType,Amount,TransactionDate

其中TransactionType = 1(收费)和2(付款)

我想返回此查询的所有记录,并包含一个额外的字段,其中包含此clinet(TenantID)的先前付款的(TransactionType = 2)TransactionDate
如果没有以前的付款,我想只返回空值作为前一个交易日期的记录。

你能帮我吗?

最佳答案

使用子查询,传入外部查询的交易日期:

SELECT TransID, TenantID, TransactionType, Amount, TransactionDate,
       (SELECT MAX(I.TransactionDate)
        FROM unnamed_table I
        WHERE I.TransactionDate < O.TransactionDate
          AND I.TransactionType = 2
          AND I.TenantID = O.TenantID) PrevTransDate
FROM unnamed_table O

关于sql - SQL返回交易表以及上次付款日期,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6425789/

10-10 23:36