Fórum Update com mais de uma tabela #28311

14/12/2005

0

Ola !

Pessoal

eu to querendo fazer um update em uma tabela onde os valores esta em outra:

Ex.:

Table_Lote Table_Estoque_Geral

---------------------------------------------------------------------------
Produto1 Produto1
QT Total

Lote1 100 123
Lote2 23

---------------------------------------------------------------------------
Produto2 Produto2
QT Total

Lote1 300 345
Lote2 45


O update faria a soma dos lotes e atualizaria o total na Table_Estoque_Geral

eu testei o seguinte update:

Update Table_Estoque_Geral set Total = ´select sum(qt) from Table_Lote where codprod = ´Produto1´;

Mas nao funcionou !

Alguem poderia me ajudar neste update ?


Skire

Skire

Responder

Posts

04/01/2006

Joni Nunes

Olá, não entendi direito suas tabelas, mas verificando o sql faltou o group by para o produto.


Responder

Gostei + 0

07/01/2006

Souzath

Oi Skire,

Para esse update vc vai ter que fazer uma subconsulta. Veja se isso te atende:

UPDATE table_estoque_geral SET total = 
                    (SELECT sum(qt) FROM table_lote WHERE codprod=´XPTO´);


Isso deve funcionar... ou entao, vc pode fazer um bloquinho PLSQL para fazer o update em um cursor, assim:

DECLARE
  CURSOR c_lotes IS
      SELECT sum(qt)
          FROM table_lote
        WHERE codprod=´XPTO´;
  v_soma  NUMBER;
BEGIN
    OPEN c_lotes;
    FETCH c_lotes INTO v_soma;
    CLOSE c_lotes;

    UPDATE table_estoque_geral SET total = v_soma;
    COMMIT;
END;



desse jeito vc pode depois evoluir essa parada para um LOOP se vc precisar fazer updates em lote.

Abraço
Thiago


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar