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]

Responder a