Проверка на количество в карточке

Народ подскажите как сделать проверку что если остаток на ксу меньше чем остаток (приход, расход) то выдаем ошибку Запрос

А вот в delphi я сделал

 with odsProvKol do
    begin
      Close;
      ClearVariables;
      SetVariable(':V_KART_ID', dmDvij.odsDvijBodyKART_ID.AsString);
      Open;
    end;
    if odsProvKolKOL.AsString > dmDvij.odsKSYInfoOSTATOK.AsString then
    begin
      ShowMessage('Ошибка!');
      Exit;
    end;

Oracle

SELECT x.ost_ksu - SUM(x.rasx) + SUM(x.prix) AS ost -- подзапросом берем остаток на КСУ - сумму расхода + сумму прихода(факт. кол-во на складе)
  FROM (SELECT Nvl(tk.Ost_God, 0) + Nvl((SELECT SUM(T2.Dok_Pr * T2.Kol_Fakt) Kl
                                          FROM Tdvij2 T2
                                         WHERE T2.Kart_Id = tk.Kart_Id),
                                        0) AS ost_ksu, -- тут считаем остаток КСУ
               (SELECT SUM(r3.dvij_kl_sp)
                  FROM tdvij2 r2, tdvij3 r3
                 WHERE r2.dok_id = r3.dok_Sy
                   AND r2.id_oper = 1734
                   AND r2.kart_id = tk.kart_id) AS prix, -- приход

               (SELECT SUM(r3.dvij_kl_sp)
                  FROM tdvij2 r2, tdvij3 r3
                 WHERE r2.dok_id = r3.dok_Sy
                   AND r2.id_oper = 1714
                   AND r2.kart_id = tk.kart_id) AS rasx -- расход

          FROM tkart tk
         WHERE tk.kart_id = :v_kart_id
           AND EXISTS
         (SELECT NULL FROM tdvij2 t2 WHERE t2.kart_id = tk.kart_id)) x -- проверка есть ли карточка такая в движении
 GROUP BY ost_ksu

Ответы (0 шт):