Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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

×

Informação importante

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