Atualizar com base em outras tabelas

Forum sobre SQL.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Atualizar com base em outras tabelas

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Atualizar com base em outras tabelas

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder