Order não está funcionando num select
Olá amigos, uso o seguinte comando:
Nele gero três sequencias de informacoes de levantamento de vendas para estatistica:
1) Quantidade de atendimentos
2) Quantidade em unidades
3) Valor da venda
Nele o comando ORDER não funciona dentro do meu sistema, pelo IB ordena perfeitamente, já que preciso ordenar primeiro pelo campo "referencia" e depois decrescente pelo campo calculado "totref".
O que pode ser?
att
Mario
select '1' as referencia,nomven, (select Count(*) from vendas where codven=vendedor.codven and datven between :dat1 and :dat2) as totref from vendedor where codven between :ven1 and :ven2 union select '2' as referencia,nomven, (select sum(qtd) from vendasi left join vendas on vendas.pedido=vendasi.pedido where codven=vendedor.codven and vendas.datven between :dat1 and :dat2) as totref from vendedor where codven between :ven1 and :ven2 union select '3' as referencia,nomven, (select sum(totalliq) from vendas where codven=vendedor.codven and datven between :dat1 and :dat2) as totref from vendedor where codven between :ven1 and :ven2 order by 1,3 desc
Nele gero três sequencias de informacoes de levantamento de vendas para estatistica:
1) Quantidade de atendimentos
2) Quantidade em unidades
3) Valor da venda
Nele o comando ORDER não funciona dentro do meu sistema, pelo IB ordena perfeitamente, já que preciso ordenar primeiro pelo campo "referencia" e depois decrescente pelo campo calculado "totref".
O que pode ser?
att
Mario
Mario Inacio
Curtidas 0
Respostas
Command Informatica
17/11/2010
Seu select parece estar correto. Verifique se você está usando clientDataSet para mostrar esse dados e se não a propriedade indexFieldNames está com algum valore definido ou se algum índice está sendo criado para o clientDataSet, pois se o mesmo select está funcionando no IBExpert então deverá funcionar no sistema também.
Espero ter ajudado.
Espero ter ajudado.
GOSTEI 0
Mario Inacio
17/11/2010
Bom dia,
Utilizo ClientDataSet e não declaro nenhum indice diretamente no componente, somente através de comandos pelo SqlDataSet.
Utilizo ClientDataSet e não declaro nenhum indice diretamente no componente, somente através de comandos pelo SqlDataSet.
GOSTEI 0
Pietro Braga
17/11/2010
Veja no DataSetProvider em Options se a propriedade poAllowCommandText está como True.
GOSTEI 0
Wilson Junior
17/11/2010
No seu componente TDataSetProvider, altere a propriedade Options.poRetainServerOrder para True.
Espero ter colaborado.
Espero ter colaborado.
GOSTEI 0
Mario Inacio
17/11/2010
Olá amigos,
Alterando Options.poRetainServerOrder pata True funcionou corretamente.
Obrigado a todos
Alterando Options.poRetainServerOrder pata True funcionou corretamente.
Obrigado a todos
GOSTEI 0
Jose Neto
17/11/2010
Olá pessoal, eu estava com esse mesmo problema, dentro do delphi o meu comando sql não obedecia o order by que eu tinha colocado, ja no ibexpert, funcionava beleza. Fui no componente tdatasetprovider, e mudei a propriedade poretainserverorder para true e tudo funcionou beleza. Valeu mesmo mesmo pela dica aí do nosso amigo. Um grande abraço para todos. José Carlos
GOSTEI 0