ceschini 0 Denunciar post Postado Janeiro 23, 2010 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
Discorpio 1 Denunciar post Postado Janeiro 23, 2010 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
ceschini 0 Denunciar post Postado Janeiro 24, 2010 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
Meneguci 1 Denunciar post Postado Janeiro 24, 2010 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
Discorpio 1 Denunciar post Postado Janeiro 25, 2010 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
ceschini 0 Denunciar post Postado Janeiro 30, 2010 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