Ir para conteúdo

POWERED BY:

Arquivado

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

Diego Gonçalves

[Resolvido] Relatório consulta entre datas com soma

Recommended Posts

Fala galera Expert...

Eu denovo...

 

Estou com uma dificuldade aqui, estou realizando uma consulta que gera um relatório no quickreport, com soma de dois campos.O erro aparentemente é na sintaxe da soma, pois, quando eu realizo a pesquisa sem a soma não ocorre nenhum erro, mas quando tento somar me aparece o seguinte erro: QRY_VENDAS: Parameter 'data inicial' not found.

 

Eu postei o meu código, se alguém puder me ajudar eu agradeço desde ja.

 

 

var
Consulta: String;
begin

with DM.QRY_VENDAS do
begin

 Consulta:= Combobox1.Text;
 Close;
 SQL.Clear;
 SQL.Add('SELECT VENDEDOR,CLIENTE,DATA,DESC_PRODUTO,SUM(VL_PRODUTO) AS TOTAL,SUM (QUANTIDADE)AS TOTAL FROM VENDAS where data BETWEEN datainicial AND datafinal AND Vendedor Like ' + Chr(39) + '%' + Consulta + '%' + Chr(39));

 Parameters.ParamByName('datainicial').Value := FormatDateTime('dd/m/yyyy', Datainicial.date);
 Parameters.ParamByName('datafinal').Value := FormatDateTime('dd/m/yyyy', Datafinal.Date);
 OPEN;
 QR_RELVENDAS.Preview;
 END;
 END;

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, o erro mudou agora depois que coloquei o que você me pediu.

Erro: " Alias TOTAL de saída duplicado."

 

o Código como ficou:

 

SQL.Add('SELECT VENDEDOR,CLIENTE,DATA,DESC_PRODUTO,SUM(VL_PRODUTO) AS TOTAL,SUM (QUANTIDADE)AS TOTAL FROM VENDAS where data BETWEEN :datainicial AND :datafinal AND Vendedor Like ' + Chr(39) + '%' + Consulta + '%' + Chr(39));

;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem duas colunas distintas usando um mesmo nome de aliás (Total). Mude um dos AS Total para AS Total1 por exemplo que vai sair correto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troquei os nomes dos campos da tabela:

 

Totalvendas

TotalQtda

 

O codigo como ficou:

 

SQL.Add('SELECT VENDEDOR,CLIENTE,DATA,DESC_PRODUTO,SUM(VL_PRODUTO) AS TOTALVENDAS,SUM (QUANTIDADE)AS TOTALQTDA FROM VENDAS where data BETWEEN :datainicial AND :datafinal AND Vendedor Like ' + Chr(39) + '%' + Consulta + '%' + Chr(39));
Parameters.ParamByName('datainicial').Value := FormatDateTime('dd/m/yyyy', Datainicial.date);
Parameters.ParamByName('datafinal').Value := FormatDateTime('dd/m/yyyy', Datafinal.Date);
OPEN;
QR_RELVENDAS.Preview;
END;
END;

O erro agora é este:

Você tentou execultar uma consulta que não inclui a expressão "Vendedor" especificada como parte de uma função agregada.

 

 

Amigos, não tenho nem idéia do que seja...

 

;

Compartilhar este post


Link para o post
Compartilhar em outros sites

como esta a estrutura da tabela vendas?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando se usa sqls com SUM, você deve usar obrigatoriamente um GROUP BY contendo todos os outros campos da sql que não envolvam SUM.

 

SQL.Add('SELECT VENDEDOR,CLIENTE,DATA,DESC_PRODUTO,SUM(VL_PRODUTO) AS TOTALVENDAS,SUM (QUANTIDADE)AS TOTALQTDA FROM VENDAS where data BETWEEN :datainicial AND :datafinal AND Vendedor Like ' + Chr(39) + '%' + Consulta + '%' + Chr(39) + ' GROUP BY VENDEDOR, CLIENTE, DATA, DESC_PRODUTO');

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado a todos....

 

Consegui resolver graças a Deus. Utilizei o componente QrExpr e somando o campo da tabela através da propriedade Expression: SUM(Campo da tabela).

 

 

Muito simples mesmo...

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.