Ir para conteúdo
  • Cadastre-se

dev botao

Update com subselect no firebird


Ver Solução Respondido por Pedro A. Araújo,
  • Este tópico foi criado há 688 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Postado

Boa tarde!

Não tenho muita experiencia no Firebird.

Precisava atualizar a origem dos meus produtos de acordo com a ultima nota de entrada, mas não sei como fazer no firebird, pois uso o Firebird 2,5(não tem merge e nem aceita with para update como no SqlServer)

Tabelas e campos envolvidos:

Produtos.Codigo  e Produtos.Origem.

NfEntrada.DataEntrada, NfEntrada.Serie, NfEntrada.DataEmissao, NfEntrada.Numero

ITNfEntrada.Serie, ITNfEntrada.DataEmissao, ITNfEntrada.Numero, ITNfEntrada.CodProduto, ITNfEntrada.Origem,

 

  • Membros Pro
Postado

Obrigado pela resposta, Pedro.

Porém, como pegará a ultima entrada, no caso tem que ser com max(NfEntrada.DataEntrada) que está somente na tabela Nfentrada

  • Solution
Postado (editado)

Dentro do subselect, você pode fazer join com a tabela NfEntrada e odenar de forma decrescente pela data de entrada.

 

UPDATE PRODUTOS
SET ORIGEM = (
  SELECT FIRST 1 ITNFENTRADA.ORIGEM
  FROM ITNFENTRADA
  INNER JOIN NFENTRADA ON (NFENTRADA.ID = ITNFENTRADA.IDNFENTRADA)
  WHERE ITNFENTRADA.CODPRODUTO= PRODUTOS.CODIGO
  ORDER BY DATAENTRADA DESC)

 

Editado por Pedro A. Araújo
  • Este tópico foi criado há 688 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.