Obrigado pelo retorno pessoal. Milton,
Eu entendi o que você quis dizer sim, e realmente, quando tiver valor positivo não tem negativo e assim sucessivamente... Eu tentei aplicar o que você comentou porém não fui muito feliz, ou não tenha entendido direito, segue abaixo a alteração que fiz... * SELECT * A.CNAJU , A.DEAJU , A.CNLIB , A.ANUSR , A.VCCUSAJU, A.CATIPAJU , A.DTAJU, A.CNFOR, A.CNGRP, A.DEART, A.QTUNIMAK, A.CATIPEMB, A.QTINIDIA, A.QTINIAJU, A.QTAJUORI , A.VCCUSNEG , A.VCCUSPOS , abs(A.VCCUSNEG) teste, abs(a.VCCUSPOS) teste2, A.CNART, A.QTAJU, A.VCCUSTOT *FROM* ( *SELECT* A.CNAJU CNAJU ,D.DEAJU DEAJU ,A.CNLIB CNLIB ,A.ANUSR ANUSR ,A.VCCUSAJU VCCUSAJU ,A.CATIPAJU CATIPAJU ,TO_CHAR(DTAJU, 'DD/MM/YY') DTAJU ,B.CNFOR CNFOR ,C.ART_GRP_NO CNGRP ,C.DESCR DEART ,C.CONT_SELL_UNIT QTUNIMAK ,C.PACK_TYPE CATIPEMB ,C.MM_ON_ORDER QTINIDIA ,C.MM_ON_ORDER + B.QTAJU QTINIAJU ,B.QTAJUORI QTAJUORI ,DECODE(SIGN(B.QTAJU),-1,QTAJU * B.VCCUSAJU,0) VCCUSNEG ,DECODE(SIGN(B.QTAJU),-1,0,QTAJU * B.VCCUSAJU) VCCUSPOS ,B.CNART CNART ,B.QTAJU QTAJU ,E.VCCUSNEG + E.VCCUSPOS VCCUSTOT *FROM* RMCABAJU A, RMDETAJU B, ARTICLE C, CETIPAJU D,RMFORAJU E *WHERE* A.CNAJU = B.CNAJU *AND* B.CNART = C.ART_NO *AND* A.CATIPAJU = D.CATIPAJU *AND* B.CNFOR = D.CNFOR *AND* B.CNFOR = E.CNFOR *AND* A.CNAJU = E.CNAJU *AND* A.CNAJU = 629003) A *ORDER* *BY* TESTE, TESTE2 Em 20 de abril de 2012 10:15, Milton Bastos Henriquis Jr. < miltonbas...@gmail.com> escreveu: > Esses valores estão em campos diferentes, um campo só contem positivos e o > outro só negativos, correto? > > VCCUSPOS = positivos > VCCUSNEG = negativos > > Portanto vc não pode ordenar dessa maneira, colocando os dois campos no > order by. > Da maneira que está, ele ordena primeiro pelo positivo, e só ordena pelo > negativo (desc) quando os positivos forem iguais. > > Uma pergunta importante: nos seus registros, pode existir valores nos dois > campos num mesmo registro? > Ou vc só tem valor em UM dos dois? > > Se tiver valor em só um dos dois - que é o caso onde faz sentido vc fazer > essa ordenação, > vc pode criar uma coluna virtual, recebendo o ABS() da coluna que estiver > preenchida, e mandar ordenar por esta coluna. > E aí ela não precisa aparecer no SELECT, ela pode ficar somente no order > by. > > > Fui muito confuso? Deu pra entender? > > > > > On Fri, Apr 20, 2012 at 10:00 AM, Leonardo Silva > <leonardo.dr...@gmail.com>wrote: > > > ** > > > > > > Bom dia Pessoal > > > > Estou precisando fazer uma ordenação da seguinte maneira, porém não estou > > conseguindo evoluir muito nas minhas tentativas, o que eu preciso é o > > seguinte. > > > > Eu tenho uma query que traz informações de vendas, e nessa query eu > tenhos > > os campos: valor_positivo e valor_negativo, e preciso efetuar a ordenação > > da mesma > > > > da seguinte maneira: > > > > valor_negativo valor_positivo > > 397,44 > > > > -208,20 > > > > 27,96 > > > > -24,80 > > > > Alguém tem alguma idéia para que eu possa resolver esse tipo de situação, > > já tentei utilizar a função Abs pra deixar os valores absolutos, porém > não > > funcionou na hora > > > > de ordenar ele sempre ordena do maior pro menor levando em consideração > os > > valores negativos e deixando os mesmos no final dos resultados. > > > > A versão do banco é 10.1.0.3.0. > > > > Desde já agradeço pela ajuda. > > > > Abaixo a query que estou executando. > > > > * > > > > select > > * > > > > A.CNAJU CNAJU > > ,D.DEAJU DEAJU > > ,A.CNLIB CNLIB > > ,A.ANUSR ANUSR > > ,A.VCCUSAJU VCCUSAJU > > ,A.CATIPAJU CATIPAJU > > ,TO_CHAR(DTAJU, > > > > 'DD/MM/YY') DTAJU > > ,B.CNFOR CNFOR > > ,C.ART_GRP_NO CNGRP > > ,C.DESCR DEART > > ,C.CONT_SELL_UNIT QTUNIMAK > > ,C.PACK_TYPE CATIPEMB > > ,C.mm_ON_ORDER QTINIDIA > > ,C.mm_ON_ORDER + b.QTAJU QTINIAJU > > ,B.QTAJUORI QTAJUORI > > ,DECODE(sign(b.qtAJU),-1,QTAJU * B.VCCUSAJU,0) VCCUSNEG > > ,DECODE(sign(b.QTAJU),-1,0,QTAJU * B.VCCUSAJU) VCCUSPOS > > ,B.CNART CNART > > ,B.QTAJU QTAJU > > ,E.VCCUSNEG + E.VCCUSPOS VCCUSTOT > > *FROM* RMCABAJU A, RMDETAJU B, ARTICLE C, CETIPAJU D,RMFORAJU E > > *WHERE* A.CNAJU = B.CNAJU > > *AND* B.CNART = C.ART_NO > > *AND* A.CATIPAJU = D.CATIPAJU > > *AND* B.CNFOR = D.CNFOR > > *AND* B.CNFOR = E.CNFOR > > *AND* A.CNAJU = E.CNAJU > > *AND* A.CNAJU = 629003 > > *ORDER* *BY* VCCUSPOS,VCCUSNEG *DESC*; > > > > -- > > Atenciosamente > > > > Leonardo Silva > > > > E da mesma maneira também o Espírito ajuda as nossas fraquezas; porque > não > > sabemos o que havemos de pedir como convém, mas o mesmo Espírito > intercede > > por nós com gemidos inexprimíveis.Romanos 8:26 > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > > > -- > Att, > > > [As partes desta mensagem que não continham texto foram removidas] > > > > ------------------------------------ > > > -------------------------------------------------------------------------------------------------------------------------- > >Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de > inteira responsabilidade de seus remetentes. > Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ > > -------------------------------------------------------------------------------------------------------------------------- > >Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » > Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! > VISITE: http://www.oraclebr.com.br/ > ------------------------------------------------------------------------------------------------------------------------ > Links do Yahoo! Grupos > > > -- Atenciosamente Leonardo Silva E da mesma maneira também o Espírito ajuda as nossas fraquezas; porque não sabemos o que havemos de pedir como convém, mas o mesmo Espírito intercede por nós com gemidos inexprimíveis.Romanos 8:26 [As partes desta mensagem que não continham texto foram removidas]