0

我需要编写一个查询,我应该在其中找到从账单发送到收到给定表中交易的付款的提前期/时间。我有下表的详细解释,看看。

第 1 步:创建一个包含 3 列 AccountId、TransactionDate、ActionTaken 的表“T_Account_Details”。(1001, 1002, 1003 .......) 和 (6/1/2013,6/4/2013,7/1/2013......) 和 (账单发送, paymentReceived....)第 2 步:可能有一些“已采取的行动”与之前的“账单发送”相对应。我们不应该考虑这些记录。第 3 步:找出账单发送和收到付款之间的轮转时间。

这样我有 200 行,对于某些 accountid,只有 billsent 并且没有收到付款,对于某些 accountid,只有收到付款但没有发送账单,并且对于某些 accountid,billsent 日期大于收到付款日期。

因此,对于所有这些标准,我需要找到从账单发送到收到付款的周转时间/交货时间/时间。由于我是sql server的新手,对我来说有点复杂,请您帮帮我。

谢谢,罗希特

4

1 回答 1

0
select account_id,date_bill,date_pay,datediff(day,date_bill,date_pay) 'Lead time' 
from
    (
        select account_id,
            (select transactionDate from T_Account_Details x where ActionTaken='billsent' and x.account_id = account_id) date_bill,
            (select transactionDate from T_Account_Details x where ActionTaken='paymentReceived' and x.account_id = account_id) date_pay
        from T_Account_Details
    ) T
order by account_id
于 2013-10-12T08:53:08.953 回答