Consulta em Ordem Decrescente não Funciona
Por que a consulta abaixo não lista os registros em ordem decresente de valor?
´
SELECT DESCRICAO, SUM(SUBTOTAL) AS VALORTOTAL
FROM VIEW_VENDA_PRODUTOS WHERE DATA
BETWEEN :VInicio AND :VFim GROUP BY 1 ORDER BY 2 DESC
´
Se eu colocar ou não o ´DESC´ no final não faz diferença. Os registros são listados em ordem de VALORTOTAL, mas de forma crescente. O que eu preciso é que sejam listados iniciando pelo maior valor.
Alguém pode me ajudar?
Obrigado.
´
SELECT DESCRICAO, SUM(SUBTOTAL) AS VALORTOTAL
FROM VIEW_VENDA_PRODUTOS WHERE DATA
BETWEEN :VInicio AND :VFim GROUP BY 1 ORDER BY 2 DESC
´
Se eu colocar ou não o ´DESC´ no final não faz diferença. Os registros são listados em ordem de VALORTOTAL, mas de forma crescente. O que eu preciso é que sejam listados iniciando pelo maior valor.
Alguém pode me ajudar?
Obrigado.
Armindo
Curtidas 0
Respostas
Macario
22/12/2006
Ola
JA tentou ao invez de passar o index da coluna passar o nome(no caso Alias)?
JA tentou ao invez de passar o index da coluna passar o nome(no caso Alias)?
GOSTEI 0
Armindo
22/12/2006
Isso não funciona o campo VALORTOTAL nao existe na tabela. Ele é criado na hora da consulta sql. Não dá para passá-lo como parâmetro com seu nome, somente pelo indice dele na consulta.
GOSTEI 0
Armindo
22/12/2006
Isso não funciona o campo VALORTOTAL nao existe na tabela. Ele é criado na hora da consulta sql. Não dá para passá-lo como parâmetro com seu nome, somente pelo indice dele na consulta.
Se eu utilizar ORDER BY VALORTOTAL, vai dar erro de unknow column
GOSTEI 0
Macario
22/12/2006
Olá.
Deveras,
Mas me diga qual base de dados você faz uso?
Apenas como referêmcoa esta instrução é suportada pelo MSSQL
[]´s
Deveras,
Mas me diga qual base de dados você faz uso?
Apenas como referêmcoa esta instrução é suportada pelo MSSQL
select DESCRICAO, sum(SUBTOTAL) as VALORTOTAL from VIEW_VENDA_PRODUTOS where DATA between :VInicio and :VFim group by BY DESCRICAO, VALORTOTAL desc
[]´s
GOSTEI 0
Leufmt
22/12/2006
Uma sugestão: Crie uma tabela temporário com o ClientDataSet e jogue todos os campos do resultado desta tua consulta e depois no ClientDataSet ordene pelo campo que tu quer.
Leandro Lázaro
Leandro Lázaro
GOSTEI 0
Cabreu.jr
22/12/2006
Tenta colocar ORDER BY 2 DESC
(ordenação pelo indice da coluna ao inves do nome)
(ordenação pelo indice da coluna ao inves do nome)
GOSTEI 0
Armindo
22/12/2006
Caro cabreu,
É exatamente assim que estou fazendo. Veja no início do tópico. Coloquei toda a instrução.
O problema é que não funciona.
Obrigado.
É exatamente assim que estou fazendo. Veja no início do tópico. Coloquei toda a instrução.
O problema é que não funciona.
Obrigado.
GOSTEI 0
Armindo
22/12/2006
Prezado Macario,
É firebird 1.5 e essa instrução não funciona. O campo virtual não pode ser utilizado na cláusula order by.
Mais alguma sugestão.
Obrigado.
É firebird 1.5 e essa instrução não funciona. O campo virtual não pode ser utilizado na cláusula order by.
Mais alguma sugestão.
Obrigado.
GOSTEI 0
Macario
22/12/2006
Olá [b:295d09c31c]Armindo[/b:295d09c31c], bom dia.
Faça um teste sem fazer uso da VIEW, acredito que deve ser este o motivo pelo qual a instrução não funciona, talvez não haja suporte a este tipo de operação mesmo.
[]´s
Faça um teste sem fazer uso da VIEW, acredito que deve ser este o motivo pelo qual a instrução não funciona, talvez não haja suporte a este tipo de operação mesmo.
[]´s
GOSTEI 0