COMPARACAO DE mês

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
carlos12
Rank: Analista Pleno
Rank: Analista Pleno
Mensagens: 123
Registrado em: Qua, 24 Out 2007 4:31 pm
Localização: rio

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?
rerodrig
Rank: Programador Júnior
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
rerodrig
Rank: Programador Júnior
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!
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 11 visitantes