[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