Página 1 de 1

Atualizar com base em outras tabelas

Enviado: 31 Mar 2020 12:49
por JoséQuintas
Sei que o ideal é STORED PROCEDURE, mas não quero mexer com isso por enquanto.
Ia perguntar, mas acho que já pensei na solução durante o post.

Código: Selecionar todos

   WITH OBJECT cnSQL
      :QueryCreate()
      :QueryAdd( "ESDATLAN",   mData )
      :QueryAdd( "ESTIPLAN",   Iif( mSomaTira < 0, "1", "2" ) )
      :QueryAdd( "ESNUMDEP",   mDeposito )
      :QueryAdd( "ESNUMDOC",   Right( Replicate( "0", 9 ) + SoNumeros( mNumNota ), 9 ) )
      :QueryAdd( "ESPRODUTO",  jpitped->ipProduto )
      :QueryAdd( "ESTRANSA",   jppedido->pdTransa )
      :QueryAdd( "ESCADASTRO", jppedido->pdCadastro )
      :QueryAdd( "ESQTDE",     jpitped->ipQtde )
      :QueryAdd( "ESVALOR",    jpitped->ipValNot / jpitped->ipQtde )
      :QueryAdd( "ESCFOP",     jpitped->ipCfOp )
      :QueryAdd( "ESTIPDOC",   "PEDIDO" )
      :QueryAdd( "ESPEDIDO",   jppedido->idPedido )
      :QueryAdd( "ESINFINC",   LogInfo() )
      :QueryExecuteInsert( "JPESTOQUE" )
   ENDWITH
Uma vez que dá pra combinar comandos, a solução deve ser:

INSERT INTO JPESTOQUE ( <lista> ) VALUES ( SELECT .... )

E pegando direto da base, sem necessidade de variável temporária, salvo exceções.

Atualizar com base em outras tabelas

Enviado: 31 Mar 2020 12:54
por JoséQuintas
E na prática com SQL poderia ser feito pra todos os produtos do pedido de uma vez, ao invés de um por um.