USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  UPDATE com SELECT
jvlsm
SANTA MARIA
RS - BRASIL
Postada em 16/11/2004 19:51 hs            
Caros Colegas,
 
Alguém saberia me dizer se é possivel fazer uma SQL com UPDATE e SELECT?
Por exemplo:
 
mdb.execute "UPDATE Vendas SET ValorTotal = (SELECT Sum(VTot) FROM VendasItens WHERE IDMovimento = 1) WHERE IDMovimento = 1"
 
A princípio era para esta instrução funcionar, mas não estou obtendo sucesso. Ela soma os itens da nota e salva no campo ValorTotal da tabela de Vendas.
 
desde já, agradeço as ajudas...
     
Sandro
não registrado
Postada em 16/11/2004 22:32 hs   
Não, infelizmente o comando Update do SQL não permite esse tipo de situação. A solução que proponho envolve o uso de uma tabela temporária, em que você armazenaria os somatórios e depois atualizaria com um Update simples a sua tabela Vendas, e por fim apagaria os dados da tabela temporária. Logo, não seria apenas um comando, mas um conjunto deles. Ficaria algo assim (vou usar a sintaxe da DAO, mas se você usa a ADO, basta fazer os ajustes):
Dim Sql as String
'Preenche a tabela temporária que você já criou
Sql="Insert Into Temp Select VendasItens.IDMovimento, Sum(VendasItens.VTot) as Total From VendasItens Where VendasItens.IDMovimento = 1 Group By VendasItens.IDMovimento"
mdb.Execute Sql
'Atualiza a tabela principal com os totais gravados na tabela temporária
Sql="Update Vendas Inner Join Temp On Vendas.IDMovimento = Temp.IDMovimento Set Vendas.ValorTotal = Temp.Total"
mdb.update sql
'Limpa a tabela temporária
Sql="Delete From Temp"
mdb.update
Um abraço,
Sandro.
     
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página