Consulta em Ordem Decrescente não Funciona

Delphi

22/12/2006

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.


Armindo

Armindo

Curtidas 0

Respostas

Macario

Macario

22/12/2006

Ola
JA tentou ao invez de passar o index da coluna passar o nome(no caso Alias)?


GOSTEI 0
Armindo

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

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

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

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

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


GOSTEI 0
Cabreu.jr

Cabreu.jr

22/12/2006

Tenta colocar ORDER BY 2 DESC
(ordenação pelo indice da coluna ao inves do nome)


GOSTEI 0
Armindo

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.


GOSTEI 0
Armindo

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.


GOSTEI 0
Macario

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


GOSTEI 0
POSTAR