Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.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 如何将更新外部应用转换为更新左连接?_Sql_Sql Server - Fatal编程技术网

Sql 如何将更新外部应用转换为更新左连接?

Sql 如何将更新外部应用转换为更新左连接?,sql,sql-server,Sql,Sql Server,我正在sql 2008上运行此查询,但我的客户端需要在sql 2000上运行此查询。 有人能帮我把这个查询转换成sql 2000吗 Update cust set Balance = dv.balance From (SELECT hb.Balance,dv.custnum FROM [#custnumtbl] as dv OUTER APPLY (SELECT TOP 1 Balance,custnum FROM CLedger b WHERE b.CustNum = dv.custnu

我正在sql 2008上运行此查询,但我的客户端需要在sql 2000上运行此查询。 有人能帮我把这个查询转换成sql 2000吗

Update cust set Balance = dv.balance 
From (SELECT hb.Balance,dv.custnum FROM [#custnumtbl] as dv 
OUTER APPLY (SELECT TOP 1 Balance,custnum FROM CLedger b 
WHERE b.CustNum = dv.custnum ORDER BY Pdate DESC) as hb) as dv 
where cust.CustNum = dv.custnum

我很确定这相当于以下相关子查询:

Update cust
    set Balance = (SELECT TOP 1 cl.Balance
                   FROM [#custnumtbl] dv JOIN
                        Cledger b
                        ON b.CustNum = dv.custnum
                   WHERE dv.custnum = cust.CustNum
                   ORDER BY Pdate DESC
                  );

我很确定这相当于以下相关子查询:

Update cust
    set Balance = (SELECT TOP 1 cl.Balance
                   FROM [#custnumtbl] dv JOIN
                        Cledger b
                        ON b.CustNum = dv.custnum
                   WHERE dv.custnum = cust.CustNum
                   ORDER BY Pdate DESC
                  );

SQL2000不支持视图内部的
顺序

UPDATE cust SET Balance = cl.Balance
FROM 
    cust 
    INNER JOIN [#custnumtbl] tmp ON cust.CustNum = tmp.CustNum
    LEFT OUTER JOIN CLedger cl ON 
        cl.CustNum = cust.CustNum 
        AND PDate = (SELECT MAX(PDate) FROM CLedger WHERE CustNum = cl.CustNum)

SQL2000不支持视图内部的
顺序

UPDATE cust SET Balance = cl.Balance
FROM 
    cust 
    INNER JOIN [#custnumtbl] tmp ON cust.CustNum = tmp.CustNum
    LEFT OUTER JOIN CLedger cl ON 
        cl.CustNum = cust.CustNum 
        AND PDate = (SELECT MAX(PDate) FROM CLedger WHERE CustNum = cl.CustNum)