Soma dos campos

Moderador: Avelino Sampaio

drigo_martins
Mensagens: 72
Registrado em: 08 Jun 2015, 16:54

Soma dos campos

Mensagempor drigo_martins » 10 Jan 2018, 04:10

Mestre Avelino, tenho a seguinte situação:

CONSULTA 1:
SELECT Principal.Auto, Sum(CCur(Nz([valorsaidaorç]))) AS valorsaida2, Sum(CCur(Nz([valorsaida]))) AS valorsaida1, CCur(Nz(Nz([valor1])+Nz([valor2])+Nz([valor3])+Nz([valor4])+Nz([valor5])+Nz([valor6])+Nz([valor7])+Nz([valor8])-Nz([desconto]))) AS total1, CCur(Nz(Nz([vvalor1])+Nz([vvalor2])+Nz([vvalor3])+Nz([vvalor4])+Nz([vvalor5])+Nz([vvalor6])+Nz([vvalor7])+Nz([vvalor8])-Nz([descontov]))) AS total2
FROM Principal LEFT JOIN TblSaida ON Principal.Auto = TblSaida.auto
GROUP BY Principal.Auto, CCur(Nz(Nz([valor1])+Nz([valor2])+Nz([valor3])+Nz([valor4])+Nz([valor5])+Nz([valor6])+Nz([valor7])+Nz([valor8])-Nz([desconto]))), CCur(Nz(Nz([vvalor1])+Nz([vvalor2])+Nz([vvalor3])+Nz([vvalor4])+Nz([vvalor5])+Nz([vvalor6])+Nz([vvalor7])+Nz([vvalor8])-Nz([descontov])));

CONSULTA 2:
SELECT Principal.Auto, CCur(Nz(DSum('nz([valor1])+nz([valor2])+nz([valor3])+nz([valor4])+nz([valor5])+nz([valor6])+nz([valor7])+nz([valor8])-nz([desconto])','principal','[auto]=' & [principal].[Auto]))+Nz(DSum('[valorsaida]','tblsaida','[auto]=' & [principal].[Auto]))) AS totalvenda, CCur(Nz(DSum('nz([vvalor1])+nz([vvalor2])+nz([vvalor3])+nz([vvalor4])+nz([vvalor5])+nz([vvalor6])+nz([vvalor7])+nz([vvalor8])-nz([descontov])','principal','[auto]=' & [principal].[Auto]))+Nz(DSum('[valorsaidaorç]','tblsaida','[auto]=' & [principal].[Auto]))) AS totalvenda2
FROM Principal LEFT JOIN TblSaida ON Principal.Auto = TblSaida.auto
GROUP BY Principal.Auto;

Utilizava a consulta 1, mas estava demorando muito para exibir os resultados. Fazendo alguns testes, percebi que utilizando o código conforme a consulta 2, a exibição de dados é muito mais rápida.

A diferença foi somar os dados na consulta diretamente da tabela.

Porque o access me trouxe os resultados mais rápido quando usei a expressão: DSum([campo],[tabela],[criterio]), e utilizando a soma da própria consulta o resultado é mais lento ??

Utilizando a forma de soma da consulta 2 realmente é a melhor?

Obrigado.

Disable adblock

Precisamos do seu apoio. Faca uma doacao para o site atraves do Paypal.


drigo_martins
Mensagens: 72
Registrado em: 08 Jun 2015, 16:54

Re: Soma dos campos

Mensagempor drigo_martins » 11 Jan 2018, 13:54

Realizando testes em rede.. a consulta 2 é realmente mais rápida.
Mas no rodapé do formulário, há campos que somam as colunas. Neste caso, quando há muitos dados, o form só fica disponível após ocorrer estes cálculos... Já com a consulta 1, embora demore mais, o form não fica 'travado'.

Estou pensando em criar um campo que receba o valor total da venda a cada modificação no formulário. Assim, a consulta não precisaria ficar efetuando cálculos.


Voltar para “Consultas”

Quem está online

Usuários neste fórum: Nenhum usuário registrado e 2 visitantes