Ir para conteúdo

Arquivado

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

Lays

UNION + Pivot

Recommended Posts

Bom dia, preciso mostrar um total de faltas justificadas e total de faltas não justificadas para cada mês para um funcionário

 

 

Preciso que fique algo assim

 

Nome / JAN / FEV / MAR / ... / Total Just / Total não justificadas

 

Nome / 0 just 2 just 2 1

1 injust 0 injust

 

 

 

A única coisa que consegui até agora foi o total de cada por mês, porém o mês é mostrado como linha e não como coluna. Consegui também usar pivot para exibir os meses como colunas mas não sei como concatenar as quantidades... (Ex: qtd just, qtd injust)

 

Ajudas?

 

 

SELECT nome, mes, SUM(faltas_justificadas) AS faltas_justificadas, SUM(faltas_injustificadas) AS faltas_injustificadas

FROM (

SELECT f.nome, TO_CHAR(TO_DATE(TO_CHAR(P.DATA, 'DD/MM/YYYY')), 'MON') AS MES, COUNT(P.ID) faltas_justificadas, 0 faltas_injustificadas

FROM TB_FUNCION F

JOIN TB_PTOSITU P

ON F.ID = P.FUNCIONID AND TIPO IN (5,8)

WHERE EXTRACT(YEAR from P.DATA) = '2015'

GROUP BY f.nome, TO_CHAR(TO_DATE(TO_CHAR(P.DATA, 'DD/MM/YYYY')), 'MON')

 

UNION

 

SELECT f.nome, TO_CHAR(TO_DATE(TO_CHAR(P.DATA, 'DD/MM/YYYY')), 'MON') AS MES, 0 faltas_justificadas, COUNT(P.ID) faltas_injustificadas

FROM TB_FUNCION F

JOIN TB_PTOSITU P

ON F.ID = P.FUNCIONID AND TIPO IN (2,6)

WHERE EXTRACT(YEAR from P.DATA) = '2015'

GROUP BY f.nome, TO_CHAR(TO_DATE(TO_CHAR(P.DATA, 'DD/MM/YYYY')), 'MON')

) CountsTable

GROUP BY CountsTable.nome, CountsTable.mes

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.