Ir para conteúdo
ODWYER

Comparar dois valores de uma mesma tabela.

Recommended Posts

Tenho a seguinte tabela:

Matrícula  Código  Valor

100.000     001       50

100.000     002       51

100.000     003       500

100.001      001       35

100.001     002        35

Como faço um select que compare os códigos '001' e '002' de cada matrícula e me retorne "OK" se os valores estiverem iguais e "ERRO" se os valores estiverem diferentes, com o seguinte resultado baseado na tabela acima:

Matricula

100.000 - ERRO

100.001 - OK.

Desde já agradeço quem puder me ajudar! :)

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Select t1.matricula,

            (case when (t2.valor<>t1.valor) then 'erro' else 'ok' end) situacao

From tabela t1,tabela t2

Where t2.matricula = t1.matricula

And t1.codigo ='001'

And t2.codigo = '002'

 

 

Algo assim , um falso join ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado pela ajuda, agora tenho uma outra situação...

Fiz o  seguinte SQL: 

 

SET PAGESIZE 5000
SET LINESIZE 300
COL NOME FOR A30
COL CPF FOR A15
COL MATRIC FOR A12
COL DESCRIÇÃO FOR A20
COL RUB FOR A4
----------------------------------------------------------------------
DEFINE MES_FOLHA    = 01/06/2019
----------------------------------------------------------------------

SELECT DISTINCT V.MATRIC, 
       CAST(UPPER(FU.NOME) AS VarChar(29)) AS "NOME",
       SUBSTR(LPAD(FU.CPF,11,'0'),1,3)||'.'||SUBSTR(LPAD(FU.CPF,11,'0'),4,3)||'.'||SUBSTR(LPAD(FU.CPF,11,'0'),7,3)||'-'||SUBSTR(LPAD(FU.CPF,11,'0'),10,2) CPF,
       CAST(F.RUBRICA AS VarChar(3)) AS "RUB",
       CAST(R.NOME AS VarChar(19)) AS "DESCRIÇÃO",
       F.VALOR       
FROM ERGON.VINCULOS V, ERGON.FICHAS_FINANCEIRAS F, ERGON.FUNCIONARIOS FU, ERGON.IPL_PT_FICHAS FF, RUBRICAS R
WHERE V.NUMERO = F.NUMVINC
AND V.NUMFUNC = F.NUMFUNC
AND V.NUMFUNC = FU.NUMERO
AND F.NUMVINC = FF.NUMVINC
AND F.NUMFUNC = FF.NUMFUNC
AND V.EMP_CODIGO = 1
AND F.NUM_FOLHA = 35
AND F.RUBRICA IN (996,989,999,628) 
AND FF.SECRETARIA = 1800
AND F.MES_ANO_FOLHA = '&MES_FOLHA'
AND F.RUBRICA = R.RUBRICA
ORDER BY 1, 4;
 

Me gera a seguinte saída: ***************************************************

 

MATRIC       NOME    RUB      DESCRIÇÃO                 VALOR
------------ ------- ---- -------------------- ----------
907.760-8    LEILA D 989     BASE INSS                    295,57
907.760-8    LEILA D 996     VANTAGENS                846,56
907.760-8    LEILA D 999     LÍQUIDO                        846,56
852.367-6    PABLO W 628  INSS CONTRI              276,00
852.367-6    PABLO W 989  BASE INSS                   594,62
852.367-6    PABLO W 996  VANTAGENS               594,62
852.367-6    PABLO W 999  LÍQUIDO                        318,62

 

Seria possível trocar as linhas por colunas para ficar assim...

 

MATRIC       NOME          RUB      INSS CONTRI   BASE INSS    VANTAGENS  LÍQUIDO  
------------ ------- ---- -------------------- ----------
907.760-8    LEILA D      989                 -                       295,57              846,56          846,56     
852.367-6    PABLO W   628           276,00                594,62              594,62          318,62
                   

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.