ullyoliveira Postado 18 de Outubro de 2018 Tópicos Que Criei: 2 Tópicos/Dia: 0.00 Meu Conteúdo: 4 Conteúdo/Dia: 0.00 Reputação: 0 Pontos/Conquistas: 40 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 33 Denunciar Compartilhar Postado 18 de Outubro de 2018 Boa tarde, estou fazendo uma sql para retornar quantas h.e o funcionário teve no mÊs, separado por faixa de 60%, 100%n(tudo na mesma linha, em colunas separadas) e tal, porém ele retorna varias linhas da mesma pessoa. Poderiam me ajudar? segue o select que estou usando. SELECT AMOVFUN.CHAPA, PFUNC.NOME, CASE WHEN AMOVFUN.CODEVE = 1313 THEN AMOVFUN.NUMHORAS / 60 END, CASE WHEN AMOVFUN.CODEVE = 1311 THEN AMOVFUN.NUMHORAS / 60 END, CASE WHEN AMOVFUN.CODEVE = 1317 THEN AMOVFUN.NUMHORAS / 60 END FROM AMOVFUN INNER JOIN PFUNC ON PFUNC.CHAPA = AMOVFUN.CHAPA WHERE AMOVFUN.MESCOMP = 9 o retorno esta assim CHAPA NOME 50% 60% 100% 000025 MARCELO IVAN RIBEIRO 6 000025 MARCELO IVAN RIBEIRO 27 000025 MARCELO IVAN RIBEIRO e teria que ser assim: CHAPA NOME 50% 60% 100% 000025 MARCELO IVAN RIBEIRO 6 0 27 Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Frederico Postado 22 de Outubro de 2018 Tópicos Que Criei: 11 Tópicos/Dia: 0.00 Meu Conteúdo: 1.140 Conteúdo/Dia: 0.22 Reputação: 60 Pontos/Conquistas: 6.161 Conteúdo Resolvido: 0 Dias Ganho: 33 Status: Offline Idade: 42 Dispositivo: Windows Denunciar Compartilhar Postado 22 de Outubro de 2018 Ully, Veja se isso te ajuda, não sei qual a versão do SQL por isso fiz dessa maneira porém se estiver utilizando a versão 2008 pra cima do SQL existe a funcionalidade PIVOT nativamente. https://docs.microsoft.com/pt-br/sql/t-sql/queries/from-using-pivot-and-unpivot?view=sql-server-2017 SELECT AMOVFUN.CHAPA, PFUNC.NOME, MAX(CASE WHEN AMOVFUN.CODEVE = 1313 THEN AMOVFUN.NUMHORAS / 60 END) [CINQUENTA], MAX(CASE WHEN AMOVFUN.CODEVE = 1311 THEN AMOVFUN.NUMHORAS / 60 END) [SESSENTA], MAX(CASE WHEN AMOVFUN.CODEVE = 1317 THEN AMOVFUN.NUMHORAS / 60 END) [CEM] FROM AMOVFUN (NOLOCK) INNER JOIN PFUNC (NOLOCK) ON PFUNC.CHAPA = AMOVFUN.CHAPA WHERE AMOVFUN.MESCOMP = 9 GROUP BY AMOVFUN.CHAPA, PFUNC.NOME []'s Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
vandersonbritodutra Postado 11 de Fevereiro de 2019 Tópicos Que Criei: 7 Tópicos/Dia: 0.00 Meu Conteúdo: 76 Conteúdo/Dia: 0.03 Reputação: 10 Pontos/Conquistas: 471 Conteúdo Resolvido: 0 Dias Ganho: 6 Status: Offline Idade: 35 Dispositivo: Linux Denunciar Compartilhar Postado 11 de Fevereiro de 2019 Tente desta maneira. SELECT PFUNC.CHAPA, A.NUMHORAS / 60, B.NUMHORAS / 60, C.NUMHORAS / 60 FROM PFUNC INNER JOIN AMOVFUN A ON PFUNC.CODCOLIGADA = A.CODCOLIGADA AND PFUNC.CHAPA = A.CHAPA AND A.CODEVE = '1313' INNER JOIN AMOVFUN B ON PFUNC.CODCOLIGADA = B.CODCOLIGADA AND PFUNC.CHAPA = B.CHAPA AND B.CODEVE = '1311' INNER JOIN AMOVFUN C ON PFUNC.CODCOLIGADA = C.CODCOLIGADA AND PFUNC.CHAPA = C.CHAPA AND C.CODEVE = '1317' 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.