Edivan Postado 8 de Novembro de 2017 Tópicos Que Criei: 22 Tópicos/Dia: 0.00 Meu Conteúdo: 76 Conteúdo/Dia: 0.01 Reputação: 1 Pontos/Conquistas: 602 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 52 Denunciar Compartilhar Postado 8 de Novembro de 2017 Olá pessoal! Tenho a consulta baixo, porém, queria que ela retornasse as Seções (Setor) das respectivas funções. Alguém pode dar uma ajuda ? SELECT DISTINCT PFUNCAO.CODIGO,PFUNCAO.NOME, (SELECT MIN(SALARIO) FROM PFUNC PFUNC1 WHERE PFUNC1.CODFUNCAO=PFUNC.CODFUNCAO GROUP BY CODFUNCAO)MENOR, (SELECT MAX(SALARIO) FROM PFUNC PFUNC1 WHERE PFUNC1.CODFUNCAO=PFUNC.CODFUNCAO GROUP BY CODFUNCAO)MAIOR, ISNULL((SELECT COUNT(*)FROM PFUNC PFUNC1 WHERE PFUNC1.CODFUNCAO=PFUNC.CODFUNCAO AND CODSITUACAO='A' AND CODCOLIGADA=1 GROUP BY CODSITUACAO),0.00)A, ISNULL((SELECT COUNT(*)FROM PFUNC PFUNC1 WHERE PFUNC1.CODFUNCAO=PFUNC.CODFUNCAO AND CODSITUACAO='P' AND CODCOLIGADA=1 GROUP BY CODSITUACAO),0.00)P, ISNULL((SELECT COUNT(*)FROM PFUNC PFUNC1 WHERE PFUNC1.CODFUNCAO=PFUNC.CODFUNCAO AND CODSITUACAO='T' AND CODCOLIGADA=1 GROUP BY CODSITUACAO),0.00)T, ISNULL((SELECT COUNT(*)FROM PFUNC PFUNC1 WHERE PFUNC1.CODFUNCAO=PFUNC.CODFUNCAO AND CODSITUACAO='M' AND CODCOLIGADA=1 GROUP BY CODSITUACAO),0.00)M, ISNULL((SELECT COUNT(*)FROM PFUNC PFUNC1 WHERE PFUNC1.CODFUNCAO=PFUNC.CODFUNCAO AND CODSITUACAO='E' AND CODCOLIGADA=1 GROUP BY CODSITUACAO),0.00)E, ISNULL((SELECT COUNT(*)FROM PFUNC PFUNC1 WHERE PFUNC1.CODFUNCAO=PFUNC.CODFUNCAO AND CODSITUACAO='F' AND CODCOLIGADA=1 GROUP BY CODSITUACAO),0.00)F, ISNULL((SELECT COUNT(*)FROM PFUNC PFUNC1 WHERE PFUNC1.CODFUNCAO=PFUNC.CODFUNCAO AND CODSITUACAO='V' AND CODCOLIGADA=1 GROUP BY CODSITUACAO),0.00)V, ISNULL((SELECT COUNT(*)FROM PFUNC PFUNC1 WHERE PFUNC1.CODFUNCAO=PFUNC.CODFUNCAO AND DATEDIFF(DAY,PFUNC1.DATAADMISSAO,GETDATE()) < 365 AND CODCOLIGADA=1 GROUP BY CODFUNCAO),0.00)'-1A', ISNULL((SELECT COUNT(*)FROM PFUNC PFUNC1 WHERE PFUNC1.CODFUNCAO=PFUNC.CODFUNCAO AND DATEDIFF(DAY,PFUNC1.DATAADMISSAO,GETDATE()) > 365 AND CODCOLIGADA=1 GROUP BY CODFUNCAO),0.00)'+1A' FROM PFUNC,PFUNCAO WHERE PFUNC.CODCOLIGADA=1 AND PFUNC.CODSITUACAO<>'D' AND PFUNC.CODCOLIGADA=PFUNCAO.CODCOLIGADA AND PFUNCAO.CODIGO=PFUNC.CODFUNCAO GROUP BY CODFUNCAO,CODSITUACAO,PFUNCAO.NOME,PFUNCAO.CODIGO,DATAADMISSAO Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Edivan Postado 14 de Novembro de 2017 Tópicos Que Criei: 22 Tópicos/Dia: 0.00 Meu Conteúdo: 76 Conteúdo/Dia: 0.01 Reputação: 1 Pontos/Conquistas: 602 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 52 Autor Denunciar Compartilhar Postado 14 de Novembro de 2017 Por favor, alguém? Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
omar Postado 16 de Novembro de 2017 Tópicos Que Criei: 59 Tópicos/Dia: 0.01 Meu Conteúdo: 817 Conteúdo/Dia: 0.16 Reputação: 105 Pontos/Conquistas: 4.774 Conteúdo Resolvido: 0 Dias Ganho: 74 Status: Offline Idade: 61 Dispositivo: Windows Denunciar Compartilhar Postado 16 de Novembro de 2017 (editado) Bom dia. Com este select, usando o cubo, faço diversos levantamentos, inclusive o total da função por seção em uma determinada data: SELECT PFUNC.CODCOLIGADA, GCOLIGADA.NOME AS COLIGADA, GCOLIGADA.CGC, PFUNC.CHAPA, PFUNC.NOME AS FUNCIONARIO, PSECAO.DESCRICAO AS SECAO, PPESSOA.SEXO, PFUNCAO.NOME AS FUNCAO, PFUNCAO.CARGO, PFUNC.CODSITUACAO, PFUNC.SALARIO, PFUNC.SALARIO AS SM, CASE WHEN PFUNC.SALARIO <= 800 THEN '1- Até 800,00' WHEN PFUNC.SALARIO > 800 AND PFUNC.SALARIO <= 1500 THEN '2- 801,00 a 1.500,00' WHEN PFUNC.SALARIO > 1500 AND PFUNC.SALARIO <= 3000 THEN '3- 1.500,00 a 3.000,00' WHEN PFUNC.SALARIO > 3000 AND PFUNC.SALARIO <= 5000 THEN '4- 3.000,00 a 5.000,00' WHEN PFUNC.SALARIO > 5000 AND PFUNC.SALARIO <= 10000 THEN '5- 5.000,00 a 10.000,00' ELSE '6- > 10.000,00' END AS [FAIXA SALARIAL], CASE WHEN DATEDIFF(YYYY, PFUNC.DataAdmissao, GETDATE()) < 1 THEN '1- Menos 1 ano' WHEN DATEDIFF(YYYY, PFUNC.DataAdmissao, GETDATE()) >= 1 AND DATEDIFF(YYYY, PFUNC.DataAdmissao, GETDATE()) < 2 THEN '2- 1 a 2 anos' WHEN DATEDIFF(YYYY, PFUNC.DataAdmissao, GETDATE()) >= 2 AND DATEDIFF(YYYY, PFUNC.DataAdmissao, GETDATE()) < 5 THEN '3- 2 a 5 anos' WHEN DATEDIFF(YYYY, PFUNC.DataAdmissao, GETDATE()) >= 5 AND DATEDIFF(YYYY, PFUNC.DataAdmissao, GETDATE()) < 10 THEN '4- 5 a 10 anos' WHEN DATEDIFF(YYYY, PFUNC.DataAdmissao, GETDATE()) >= 10 AND DATEDIFF(YYYY, PFUNC.DataAdmissao, GETDATE()) < 15 THEN '5- 10 a 15 anos' WHEN DATEDIFF(YYYY, PFUNC.DataAdmissao, GETDATE()) >= 15 AND DATEDIFF(YYYY, PFUNC.DataAdmissao, GETDATE()) < 20 THEN '6- 15 a 20 anos' ELSE '7- Mais 20 anos' END AS [TEMPO DE CASA], DATEDIFF(YYYY, PFUNC.DataAdmissao, GETDATE()) AS TEMPO, CASE WHEN DATEDIFF(YYYY, PPESSOA.DTNASCIMENTO, GETDATE()) <= 25 THEN '1- 25 anos ou menos' WHEN DATEDIFF(YYYY, PPESSOA.DTNASCIMENTO, GETDATE()) > 25 AND DATEDIFF(YYYY, PPESSOA.DTNASCIMENTO, GETDATE()) <= 34 THEN '2- 26 a 34 anos' WHEN DATEDIFF(YYYY, PPESSOA.DTNASCIMENTO, GETDATE()) > 34 AND DATEDIFF(YYYY, PPESSOA.DTNASCIMENTO, GETDATE()) <= 44 THEN '3- 35 a 44 anos' WHEN DATEDIFF(YYYY, PPESSOA.DTNASCIMENTO, GETDATE()) > 45 AND DATEDIFF(YYYY, PPESSOA.DTNASCIMENTO, GETDATE()) <= 54 THEN '4- 45 a 54 anos' ELSE '5- Mais de 55 anos' END AS IDADE, ( CASE PPESSOA.GRAUINSTRUCAO WHEN '1' THEN '01- Analfabeto' WHEN '2' THEN '02- Até 5o. ano ensino fundamental' WHEN '3' THEN '03- 5o. ano completo ensino fundamental' WHEN '4' THEN '04- 6o. ao 9o. ano ensino fundamental' WHEN '5' THEN '05- Ensino fundamentalcompleto' WHEN '6' THEN '06- Ensino médio incompleto' WHEN '7' THEN '07- Ensino médio completo' WHEN '8' THEN '08- Ensino superior incompleto' WHEN '9' THEN '09- Ensino superior completo' WHEN 'A' THEN '10- Pós-graduação incompleto' WHEN 'B' THEN '11- Pós-graduação completo' WHEN 'C' THEN '12- Mestrado incompleto' WHEN 'D' THEN '13- Mestrado completo' WHEN 'E' THEN '14- Doutorado incompleto' WHEN 'F' THEN '15- Doutorado completo' WHEN 'G' THEN '16- Pós-doutorado incompleto' WHEN 'H' THEN '17- Pós-doutorado completo' END ) AS [GRAU INSTRUÇÃO], PFUNC.CODTIPO, PFUNC.DataAdmissao, 1 AS QUANT FROM PFUNC(NOLOCK), PPESSOA (NOLOCK), PSECAO(NOLOCK), GCOLIGADA(NOLOCK), PFUNCAO(NOLOCK) WHERE ( PFUNC.CODPESSOA = PPESSOA.CODIGO AND PFUNC.CODCOLIGADA = PSECAO.CODCOLIGADA AND PFUNC.CODSECAO = PSECAO.CODIGO AND PFUNC.CODCOLIGADA = PFUNCAO.CODCOLIGADA AND PFUNC.CODFUNCAO = PFUNCAO.CODIGO AND PFUNC.CODCOLIGADA = GCOLIGADA.CODCOLIGADA AND PFUNCAO.CODCOLIGADA = GCOLIGADA.CODCOLIGADA AND PSECAO.CODCOLIGADA = GCOLIGADA.CODCOLIGADA ) AND PFUNC.CODSITUACAO NOT IN ( 'I', 'U' ) AND ( PFUNC.CODCOLIGADA = GCOLIGADA.CODCOLIGADA AND PFUNC.CODCOLIGADA = PSECAO.CODCOLIGADA AND PFUNC.CODSECAO = PSECAO.CODIGO ) AND ( ( PFUNC.CODSITUACAO <> 'D' AND PFUNC.DATAADMISSAO <= :DATA ) OR ( PFUNC.CODSITUACAO = 'D' AND PFUNC.DATAADMISSAO <= :DATA AND PFUNC.DATADEMISSAO >= :DATA ) ) GROUP BY PFUNC.DATAADMISSAO, PFUNC.CHAPA, PFUNCAO.NOME, PFUNCAO.CARGO, PFUNC.SALARIO, PPESSOA.SEXO, PPESSOA.DTNASCIMENTO, PPESSOA.GRAUINSTRUCAO, PFUNC.CODSITUACAO, PFUNC.CODTIPO, PFUNC.NOME, PSECAO.DESCRICAO, PFUNC.CODCOLIGADA, GCOLIGADA.NOME, GCOLIGADA.CGC Editado 16 de Novembro de 2017 por omar Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
omar Postado 16 de Novembro de 2017 Tópicos Que Criei: 59 Tópicos/Dia: 0.01 Meu Conteúdo: 817 Conteúdo/Dia: 0.16 Reputação: 105 Pontos/Conquistas: 4.774 Conteúdo Resolvido: 0 Dias Ganho: 74 Status: Offline Idade: 61 Dispositivo: Windows Denunciar Compartilhar Postado 16 de Novembro de 2017 Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Posts Recomendados
Participe da conversa
Você pode postar agora, e se registrar mais tarde. Se você tiver uma conta, faça o login agora para postar com sua conta.