Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Kleber Quilez

Atualizando com Subselect

Recommended Posts

Ola Pessoal, Estou com o Seguinte Problema tenho que Guardar a Soma de uma Coluna de uma Tabela em Outra Tabela estou usando o Seguinte Código na Minha Query mas lógicamente como estou aqui ta dando Pau!! rsrsrsDados.QueryAltera.SQL.Add('update caixa set total= select sum(total_print) from movimento where data ='+data+'');Estou tentanado Somas todos os Valores da tabela Movimento na Coluna total_print na data Estabelecida e Jogar como um registro na Tabela caixa!Grato, Kleber

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente da seguinte forma:

 

Dados.QueryAltera.SQL.Add('update caixa set total = (select sum(total_print) from movimento where data ='+data+''));

Caso continue o erro, coloque a mensagem aqui no fórum...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente assim kra ...

 

with Dados.QueryAltera do   begin	 Close;	 SQL.Clear;	 SQL.Add('UPDATE');	 SQL.Add(  'CAIXA');	 SQL.Add('SET TOTAL = (SELECT SUM(TOTAL_PRINT) FROM MOVIMENTO WHERE DATA = ' + QuotedStr(FormatDateTime('yyyy/mm/yy', Data)) + ')');	 ExecSQL;   end;

PS: Na linha FormatDateTime('yyyy/mm/yy', Data) você passa o formato da sua data ... no meu caso é yyyy/mm/yy ....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Descurpa ai Pessoal!! Realmente foi Bizarro!!O Erro é o Seguinte!!!" A Operação deve ser uma Consulta Atualizavel!! " O Codigo Presente pra esse erro é...Dados.QueryAltera.Close; Dados.QueryAltera.SQL.Clear; Dados.QueryAltera.SQL.Add('update caixa set total_print = (select sum(total_print) from movimento where data ='+data+''); Dados.QueryAltera.SQL.Add('UPDATE'); Dados.QueryAltera.SQL.Add( 'CAIXA'); Dados.QueryAltera.SQL.Add('SET TOTAL_PRINT = (SELECT SUM(TOTAL_PRINT) FROM MOVIMENTO WHERE DATA = ' +Data+ ' )'); Dados.QueryAltera.ExecSQL; Dados.QueryAltera.Open;Agradeço desde já a atenção de vocês!! Grande Abraço!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Possivelmente o erro aconteça na linha:

Dados.QueryAltera.Open;
Remova e deixe somente a linha:

Dados.QueryAltera.ExecSQL;
O SQL esta passando duas vezes, tente assim:

Dados.QueryAltera.Close;Dados.QueryAltera.SQL.Clear;Dados.QueryAltera.SQL.Add('UPDATE');Dados.QueryAltera.SQL.Add( 'CAIXA');Dados.QueryAltera.SQL.Add('SET TOTAL_PRINT = (SELECT SUM(TOTAL_PRINT) FROM MOVIMENTO WHERE DATA = ' +Data+ ' )');Dados.QueryAltera.ExecSQL;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, não Funciona... to pensando em fazer DiferenteDados.QueryAltera.Close;Dados.QueryAltera.SQL.Clear;Dados.QueryAltera.SQL.Add('select sum(total_print) as total from movimento where data = '+data+'');Dados.QueryAltera.ExecSQL;Dados.QueryAltera.Open;No Caso Acima ele estaria Somando a Coluna total_print dentro da data estipulada, mas eu queria jogar esse valor em uma variável ou até em um Edit e a partir disso eu Atualizaria a Tabela Caixa, por que o banco de Dados que estou usando tb é Muito Fraco Access.Pergunto aos Amigos!! Como Posso Jogar o Resultado desse Select Acima em uma Variavel ou em um Edit!??Desde ja Grato pela Ajuda, Kleber

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então na Verdade ele nao Atualiza nada... ele da o erro:" A Operação deve ser uma Consulta Atualizavel!! " E Como preciso disso meio rápido, queria resolver da maneira mais facil possivel e depois pensar em uma solução mais eficaz com td resolvido via "selects" e "Updates",mas no momento estou muito atrasado com a entrega do projeto que apesar de simples e de suma importancia pra meu cliente!! Então se os amigos puderem me dizer uma maneira de salvar o retorno disso ...Dados.QueryAltera.Close;Dados.QueryAltera.SQL.Clear;Dados.QueryAltera.SQL.Add('select sum(total_print) as total from movimento where data = '+data+'');Dados.QueryAltera.ExecSQL;Dados.QueryAltera.Open;.. em uma variavel ficarei muuuuuuuuuuuuuuuuuuuuuuuuuito agradecido, ai crio uma outra query e atualizado a tabela caixa atravéz de um Edit ou de uma Variavel!!!Muito Grato, Kleber

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.