Muito obrigado pela ajuda pessoal.. Milton, perfeito...
Abs Em 20 de abril de 2012 10:57, Milton Bastos Henriquis Jr. < miltonbas...@gmail.com> escreveu: > Bom dia Alessandro! > > Então, eu mandei a query "definitiva" em outro e-mail, não sei se vc chegou > a ler... > > Não ficou muito claro se ele quer MOSTRAR os valores em uma coluna só, ou > se o que interessa pra ele é somente a ordenação. > Eu entendi que ele queria somente a ordenação. > > De qualquer maneira, se ele quiser mostrar uma coluna com o valor que está > sendo considerado, > é isso mesmo que vc fez ! Acho que essa é a parte "fácil" da query depois > que a ordenação já está feita... rs... > > > Abraço! > > > http://certificacaobd.com.br > > > On Fri, Apr 20, 2012 at 10:48 AM, Alessandro Lúcio Cordeiro da Silva < > alecordeirosi...@yahoo.com.br> wrote: > > > ** > > > > > > > > Olá Milton, sua solução esta quase perfeita, so que o Leandro queria > > mostar os numeros negativos, por isso so acrecentei s sua query para > fazer > > o order by e mostrar o numero original. > > select > > pos, neg, abs(neg), decode(pos, 0, neg, pos) valorfrom > > teste_valororder > > bydecode(pos, 0, abs(neg), pos) desc > > > > Alessandro Lúcio Cordeiro da Silva > > Analista de Sistema > > þ http://alecordeirosilva.blogspot.com/ > > O tic-tac do relógio me lembra de algo muito importante que esta > > acontecendo: estamos vivos. > > "Joana de Souza Schmitz Croxato" > > > > ________________________________ > > De: Milton Bastos Henriquis Jr. <miltonbas...@gmail.com> > > Para: oracle_br@yahoogrupos.com.br > > Enviadas: Sexta-feira, 20 de Abril de 2012 9:35 > > Assunto: Re: [oracle_br] Duvida na ordenação > > > > > > CREATE TABLE TESTE_VALOR > > ( > > POS NUMBER(8, 2) > > , NEG NUMBER(8, 2) > > ); > > > > insert into teste_valor values (100, 0); > > insert into teste_valor values (0, -150); > > insert into teste_valor values (200, 0); > > insert into teste_valor values (0, -250); > > insert into teste_valor values (0, -1200); > > insert into teste_valor values (1900, 0); > > > > select * from teste_valor; > > > > select pos, neg, abs(neg), decode(pos, 0, abs(neg), pos) valor > > from teste_valor > > order by valor desc; > > > > Att, > > > > Milton Bastos > > http://certificacaobd.com.br > > > > On Fri, Apr 20, 2012 at 10:29 AM, Leonardo Silva > > <leonardo.dr...@gmail.com>wrote: > > > > > ** > > > > > > > > > > > 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] > > > > > > > > > > > > > -- > > 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 > > > > [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]