none
SubQuery RRS feed

  • Pergunta

  • Bom dia!

     

    Pessoal,

     

    Como faço Subquery do comando abaixo:


    SELECT FLP_FUNCIONARIOS.CHAPAFUNC,

           FLP_DOCUMENTOS.TIPODOCTO,

           FLP_DOCUMENTOS.NRDOCTO

    FROM FLP_DOCUMENTOS

    INNER JOIN FLP_FUNCIONARIOS ON FLP_DOCUMENTOS.CODINTFUNC = FLP_FUNCIONARIOS.CODINTFUNC

    WHERE FLP_DOCUMENTOS.TIPODOCTO IN ('CTPS',

                                       'CPF',

                                       'RG')

      AND FLP_FUNCIONARIOS.CHAPAFUNC = '003091';

     


    Resultado desta consulta apresenta desta forma:

     

    CHAPA | DOCUMENTO| NR_DOCUMENTO

    003091     CPF                02489753347

    003091     CTPS             11115

    003091     RG                  45458799

     

     

    Preciso que os registros apresentem em uma única linha, sendo CPF, RG e CTPS, desta forma:

     

    CHAPA    | NR_CPF           | NR_CTPS    | NR_RG

    003091     02489753347   11115               45458799

     

     

    Desde já antecipo meus agradecimentos.

    terça-feira, 31 de outubro de 2017 13:37

Respostas

  • Bom dia,

    Experimente fazer uns testes dessa forma:

    SELECT 
        FLP_FUNCIONARIOS.CHAPAFUNC,
        MAX(CASE WHEN FLP_DOCUMENTOS.TIPODOCTO = 'CPF' THEN FLP_DOCUMENTOS.NRDOCTO END) AS NR_CPF,
        MAX(CASE WHEN FLP_DOCUMENTOS.TIPODOCTO = 'CTPS' THEN FLP_DOCUMENTOS.NRDOCTO END) AS NR_CTPS,
        MAX(CASE WHEN FLP_DOCUMENTOS.TIPODOCTO = 'RG' THEN FLP_DOCUMENTOS.NRDOCTO END) AS NR_RG
    FROM FLP_DOCUMENTOS
    INNER JOIN FLP_FUNCIONARIOS ON FLP_DOCUMENTOS.CODINTFUNC = FLP_FUNCIONARIOS.CODINTFUNC
    WHERE 
        FLP_DOCUMENTOS.TIPODOCTO IN ('CTPS', 'CPF', 'RG') AND 
        FLP_FUNCIONARIOS.CHAPAFUNC = '003091'
    GROUP BY
        FLP_FUNCIONARIOS.CHAPAFUNC
    

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    • Sugerido como Resposta Edvaldo A terça-feira, 31 de outubro de 2017 15:52
    • Marcado como Resposta Filipe B CastroModerator terça-feira, 31 de outubro de 2017 17:50
    terça-feira, 31 de outubro de 2017 13:48

Todas as Respostas

  • Bom dia,

    Experimente fazer uns testes dessa forma:

    SELECT 
        FLP_FUNCIONARIOS.CHAPAFUNC,
        MAX(CASE WHEN FLP_DOCUMENTOS.TIPODOCTO = 'CPF' THEN FLP_DOCUMENTOS.NRDOCTO END) AS NR_CPF,
        MAX(CASE WHEN FLP_DOCUMENTOS.TIPODOCTO = 'CTPS' THEN FLP_DOCUMENTOS.NRDOCTO END) AS NR_CTPS,
        MAX(CASE WHEN FLP_DOCUMENTOS.TIPODOCTO = 'RG' THEN FLP_DOCUMENTOS.NRDOCTO END) AS NR_RG
    FROM FLP_DOCUMENTOS
    INNER JOIN FLP_FUNCIONARIOS ON FLP_DOCUMENTOS.CODINTFUNC = FLP_FUNCIONARIOS.CODINTFUNC
    WHERE 
        FLP_DOCUMENTOS.TIPODOCTO IN ('CTPS', 'CPF', 'RG') AND 
        FLP_FUNCIONARIOS.CHAPAFUNC = '003091'
    GROUP BY
        FLP_FUNCIONARIOS.CHAPAFUNC
    

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    • Sugerido como Resposta Edvaldo A terça-feira, 31 de outubro de 2017 15:52
    • Marcado como Resposta Filipe B CastroModerator terça-feira, 31 de outubro de 2017 17:50
    terça-feira, 31 de outubro de 2017 13:48
  • Corretíssimo My Brother, Muitíssimo obrigado.
    terça-feira, 31 de outubro de 2017 14:07