Ir para conteúdo

POWERED BY:

Arquivado

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

ceschini

[Resolvido] Resultado SQL de forma descendente

Recommended Posts

Alô pessoal, estou de volta ao forum para mais uma ajuda de vocês. Estive fora da programação por algum tempo e estou meio enferrujado.

Estou com um problema abaixo. Tenho uma sql para retornar a soma das vendas por categoria, mas preciso que o resultado seja do valor maior para o menor. Alguém pode me dar uma força? Já tentei usar a função DESC mas só funciona com a coluna categoria.

Valeu!!!

 

 

sqlc := 'SELECT Categoria, sum(venda) as total ' ;

sqlc := sqlc + ' FROM banco_tv';

sqlc := sqlc + ' where bandeira ='+#39+combobox1.Text+#39;

sqlc := sqlc + ' and datai>=#'+DataInicio+'# and datai<=#' +DataFim+'#';

sqlc := sqlc + ' and dataf>=#'+DataInicio+'# and dataf<=#'+DataFim+'#';

sqlc := sqlc + ' Group By categoria';

sqlc := sqlc + ' order by categoria';

 

queryconsultacategoria.Close;

queryconsultacategoria.SQL.Clear;

queryconsultacategoria.SQL.Text:=sqlc;

queryconsultacategoria.Open;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde Ceschini.

 

Simples, basta acrescentar o campo vitual "Total" que armazena a soma na lista de ordenação e logo em seguida acrescentar a sintaxe "Desc".

 


sqlc := 'SELECT Categoria, sum(venda) as total ' ;
sqlc := sqlc + ' FROM banco_tv';
sqlc := sqlc + ' where bandeira ='+#39+combobox1.Text+#39;
sqlc := sqlc + ' and datai>=#'+DataInicio+'# and datai<=#' +DataFim+'#';
sqlc := sqlc + ' and dataf>=#'+DataInicio+'# and dataf<=#'+DataFim+'#';
sqlc := sqlc + ' Group By categoria';
sqlc := sqlc + ' order by categoria, total desc';

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde Ceschini.

 

Simples, basta acrescentar o campo vitual "Total" que armazena a soma na lista de ordenação e logo em seguida acrescentar a sintaxe "Desc".

 


sqlc := 'SELECT Categoria, sum(venda) as total ' ;
sqlc := sqlc + ' FROM banco_tv';
sqlc := sqlc + ' where bandeira ='+#39+combobox1.Text+#39;
sqlc := sqlc + ' and datai>=#'+DataInicio+'# and datai<=#' +DataFim+'#';
sqlc := sqlc + ' and dataf>=#'+DataInicio+'# and dataf<=#'+DataFim+'#';
sqlc := sqlc + ' Group By categoria';
sqlc := sqlc + ' order by categoria, total desc';

Discorpio, usei conforme me orientou mas não funciona.

Me retorna um erro informando que total não tem valor padrão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

amigo qual o banco de dados que você tá usando?

mysql, sqlserver, firebird suportam essa ordenação

qual o componente de conexao você ta usando?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite a todos.

 

Tente então pelo índice da coluna do Select, assim:

 


sqlc := 'SELECT Categoria, sum(venda) as total ' ;
sqlc := sqlc + ' FROM banco_tv';
sqlc := sqlc + ' where bandeira ='+#39+combobox1.Text+#39;
sqlc := sqlc + ' and datai>=#'+DataInicio+'# and datai<=#' +DataFim+'#';
sqlc := sqlc + ' and dataf>=#'+DataInicio+'# and dataf<=#'+DataFim+'#';
sqlc := sqlc + ' Group By categoria';
sqlc := sqlc + ' order by categoria, 1 desc';

Valendo lembrar que sempre começa por zero (0).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvido, apenas informei a função agregada da sql em order by e funcionou direitinho.

Obrigado....

 

 

sqlc := 'SELECT Categoria, sum(venda) as total ' ;

sqlc := sqlc + ' FROM banco_tv';

sqlc := sqlc + ' where bandeira ='+#39+combobox1.Text+#39;

sqlc := sqlc + ' and datai>=#'+DataInicio+'# and datai<=#' +DataFim+'#';

sqlc := sqlc + ' and dataf>=#'+DataInicio+'# and dataf<=#'+DataFim+'#';

sqlc := sqlc + ' Group By categoria';

sqlc := sqlc + ' order by sum(venda) desc';

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.