bOM DIA PESSOAL ESTOU COM UMA DUVIDA DE COMO MONTAR UM SELECT.
COMO PODERIA FAZER UM SELECT PRA PEGAR O FINANCEIRO DE UM CLIENTE DA SEGUINTE FORMA:
UM SELECT QUE TRAGA A DIFERENÇA DE VALOR PAGO ENTRE UM mês E OUTRO TIPO ESSE mês O CARA PAGOU 50 EU QUERO TRAZER SE CASO ESSE CARA mês PASSADO PAGOU ALGO DIFERENTE DE 50
SELECT N.VALOR FROM NOTA N WHERE N.DTNOTA = '20/03/2007' AND EXISTS(SELECT A.VALOR FROM NOTA A WHERE A.DTNOTA = '20/02/2007' AND N.VALOR <> A.VALOR )
TEM COMO FAZER ASSIM OU TEM UM JEITO MELHOR?
COMPARACAO DE mês
-
- Rank: Programador Júnior
- Mensagens: 27
- Registrado em: Qua, 06 Fev 2008 10:33 am
- Localização: Americana - SP
seria mais ou menos assim:
select abs(n1.valor - (
select i2.valor from nota n2 where n2.dtnota = '20/03/2007' and rownum = 1))
from nota n1 where n1.dtnota = '20/02/2007';
coloquei o rownum = 1, porque senao da erro falando q a subquery pode retornar mais de uma linha, acho q colocando alguma função de grupo e tirando o rownum da certo tb...ai caso você queira q não apareça os q são iguais, faz um select por cima desse e descarta as linhas que retornarem zero...falow
select abs(n1.valor - (
select i2.valor from nota n2 where n2.dtnota = '20/03/2007' and rownum = 1))
from nota n1 where n1.dtnota = '20/02/2007';
coloquei o rownum = 1, porque senao da erro falando q a subquery pode retornar mais de uma linha, acho q colocando alguma função de grupo e tirando o rownum da certo tb...ai caso você queira q não apareça os q são iguais, faz um select por cima desse e descarta as linhas que retornarem zero...falow
-
- Rank: Programador Júnior
- Mensagens: 27
- Registrado em: Qua, 06 Fev 2008 10:33 am
- Localização: Americana - SP
ah, só mais uma coisa, se esse campo dtnota for do tipo date precisa dar o to_char para a comparação com uma string...não sei se você colocou só pra mostrar o exemplo mas vale o aviso! falow!
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 6 visitantes