Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 我需要从表格中找到从发送账单到收到付款所需的交付周期/天数_Sql Server_Sql Server 2008 - Fatal编程技术网

Sql server 我需要从表格中找到从发送账单到收到付款所需的交付周期/天数

Sql server 我需要从表格中找到从发送账单到收到付款所需的交付周期/天数,sql-server,sql-server-2008,Sql Server,Sql Server 2008,我需要编写一个查询,在该查询中,我应该找到给定表中交易从billsent到payment received所用的前置时间/时间。我有下表的详细说明,看看 步骤1:创建一个表“T_Account_Details”,其中有3列AccountId、TransactionDate和ActionTaked。(100110003……)和(2013年6月1日、2013年6月4日、2013年7月1日……)和(已发送账单、已收到付款……) 步骤2:可能有一些“已采取的行动”对应于之前的“billsent”。我们不

我需要编写一个查询,在该查询中,我应该找到给定表中交易从billsent到payment received所用的前置时间/时间。我有下表的详细说明,看看

步骤1:创建一个表“T_Account_Details”,其中有3列AccountId、TransactionDate和ActionTaked。(100110003……)和(2013年6月1日、2013年6月4日、2013年7月1日……)和(已发送账单、已收到付款……) 步骤2:可能有一些“已采取的行动”对应于之前的“billsent”。我们不应该考虑这些记录。 第3步:查找发送账单和收到付款之间的周转时间

这样,我有200行,对于某些accountid,只有billsent,没有收到付款;对于某些accountid,只有收到付款,但没有发送票据;对于某些accountid,billsent日期大于payment received日期

因此,对于所有这些标准,我需要找到从billsent到payment received的周转时间/交付周期/时间。由于我是sql server的新手,它对我来说有点复杂,您能帮我一下吗

谢谢,
Rohit

嗨,当我查询这个时,我得到了这个错误,请看一看。Msg 512,级别16,状态1,第1行子查询返回的值超过1。当子查询在=、!=、=或者当子查询用作表达式时。No accountid不唯一,因为还有其他事务也使用相同的acountid,所以accountid列不唯一
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