0

別のテーブルに挿入または更新できるトリガーがあります。

更新を追加する前はトリガーが機能していますが、更新を追加した後はエラーが発生します

サブクエリが EXISTS で導入されていない場合、選択リストに指定できる式は 1 つだけです。

これについて私を助けてもらえますか?

UPDATE 
    OLT_Balance_Update
SET 
    StartOfDayBalance = 
       (SELECT dbo.OLT_Cash_Posting.ClientNo, 
               ROUND(dbo.OLT_ArAp.NetArAp, 0) + ISNULL(dbo.OLT_Cash_Posting.Amount, 0) + ISNULL(dbo.interface_rlf_deposits.PortoQuantity * dbo.interface_rlf_deposits.PortoAverage, 0) + ISNULL(dbo.OLT_ArAp.InvestorBAC, 0) AS StartOfDayBalance
        FROM  dbo.OLT_Cash_Posting 
        LEFT OUTER JOIN dbo.OLT_Client ON dbo.OLT_Cash_Posting.ClientNo = dbo.OLT_Client.ClientNo 
        LEFT OUTER JOIN dbo.OLT_ArAp ON dbo.OLT_Cash_Posting.clientno = dbo.OLT_ArAp.ClAcNo 
        LEFT OUTER JOIN dbo.interface_rlf_deposits ON dbo.OLT_Client.ClientNo = dbo.interface_rlf_deposits.clAcno)
        WHERE 
              Clientno IN (SELECT P.ClientNo 
                           FROM  OLT_Balance_Update P, inserted I  
                           WHERE P.ClientNo = I.ClientNo)
4

1 に答える 1

0

これを試して:

SET StartOfDayBalance ステートメントに対して返される複数の値

UPDATE OLT_Balance_Update
SET StartOfDayBalance =  ROUND(dbo.OLT_ArAp.NetArAp, 0) + ISNULL(dbo.OLT_Cash_Posting.Amount, 0) + ISNULL(dbo.interface_rlf_deposits.PortoQuantity * dbo.interface_rlf_deposits.PortoAverage, 0) + ISNULL(dbo.OLT_ArAp.InvestorBAC, 0)
FROM  dbo.OLT_Cash_Posting 
LEFT OUTER JOIN dbo.OLT_Client 
    ON dbo.OLT_Cash_Posting.ClientNo = dbo.OLT_Client.ClientNo 
LEFT OUTER JOIN dbo.OLT_ArAp 
    ON dbo.OLT_Cash_Posting.clientno = dbo.OLT_ArAp.ClAcNo 
LEFT OUTER JOIN dbo.interface_rlf_deposits 
    ON dbo.OLT_Client.ClientNo = dbo.interface_rlf_deposits.clAcno
WHERE Clientno IN 
(SELECT P.ClientNo FROM  OLT_Balance_Update P join inserted I on P.ClientNo = I.ClientNo)
于 2012-08-06T06:33:46.653 に答える