[firebase-br] Order By DT_LANC alterando ordem natural p/2 == mm DT_LANC
Carlos H. Cantu
listas em warmboot.com.br
Ter Fev 10 09:16:36 -03 2015
Se vc seguiu o exemplo da firebase, deve ter um campo (ex: DEB_CRED)
que identifica se o lançamento retornado é crédito (C) ou débito (D).
No caso, bastaria no select que vc chamou a SP usar um order by como
abaixo:
select ....
order by DT_LANC ASC, DEB_CRED DESC
Isso fará com que sejam listados primeiro os débitos e depois os
créditos (apesar que particularmente eu prefiro o contrário).
Agora, se a sua intenção é listar na ordem em que os lançamentos foram
inseridos na base de dados, isso só será possível se vc tiver um
campo que armazene a data+hora da inserção, ou mesmo um
autoincremento, e no select ordene por ele, pois diferente do que
acontece em uma base de dados "desktop", em bases relacionais não
existe "ordem natural de inserção".
[]s
Carlos H. Cantu
www.FireBase.com.br - www.firebirdnews.org
www.warmboot.com.br - blog.firebase.com.br
MR> Prezados Companheiros,
MR> Tenho uma St.Proc FluxodeCaixa que nada mais é do que uma adaptação da
MR> ST.FluxoCaixa publicada pela Firebase que deve ser do V.conheciemnto.
MR> O problema consiste na alteração da ordem.
MR> Quando introduzo a ordem necessária, "Order By DT_LANC", para 2
MR> registos, exactamente com mesma DT_LANC, o 1.º a Débito(na ordem
MR> natural) e o 2.º a Crédito, sai primeiro o registo a Crédito e o segundo
MR> a Débito
MR> quando necessito exactamente do contrário.
MR> Alguém te uma ideia do que poderá estar a passar-se e de como resolver?
MR> M/Selects
MR> 1.º: c/order by como necessário
MR> for select ap.DT_LANC, ap.FORNEC_ID, ap.DT_DOC, ap.NO_DOC,
MR> ap.DESCRITIVO, ap.valor, ap.mv_id
MR> from caixa ap
MR> where (ap.DT_LANC between :inicio and :fim)
MR> and ap.accao!='EST'
MR> Order By ap.DT_LANC -- Com esta linha altera a ordem
MR> INTO :DT_LANC, :FORNEC_ID, :DT_DOC, :NO_DOC, :descritivo, :valor,
MR> :WID
MR> 2.º S/order by
MR> for select ap.DT_LANC, ap.FORNEC_ID, ap.DT_DOC, ap.NO_DOC,
MR> ap.DESCRITIVO, ap.valor, ap.mv_id
MR> from caixa ap
MR> where (ap.DT_LANC between :inicio and :fim)
MR> and ap.accao!='EST'
MR> INTO :DT_LANC, :FORNEC_ID, :DT_DOC, :NO_DOC, :descritivo, :valor,
MR> :WID
MR> ______________________________________________
MR> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
MR> Para saber como gerenciar/excluir seu cadastro na lista, use:
MR> http://www.firebase.com.br/fb/artigo.php?id=1107
MR> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
Mais detalhes sobre a lista de discussão lista