Quantcast
Channel: Ajuda com Union
Viewing all articles
Browse latest Browse all 6

Ajuda com Union

$
0
0

Amigos, bom dia. 

Estou rodando uma query que unem 3 tabelas. Uma de FALTAS, uma de ATRASOS e outra de HORAS EXTRAS. 

Meu problema é o seguinte: vamos supor que o Funcionario1 tem falta e atraso. Nesse caso, criam-se 2 linhas pra ele. Uma pra cada modalidade. Teria como eu fazer com que as celulas fossem mescladas. Vejam meu resultado atual e a query:

DECLARE @MesCompetencia INT = 5
DECLARE @AnoCompetencia INT = 2014

SELECT 
c.nome AS COLABORADOR,
SUM((DATEDIFF(DAY, periodo_de,periodo_ate) + 1)) AS FALTAS,
SUM(dias_dsr) AS DSRFALTAS,
'' AS ATRASO,
'' AS [100PC],
'' AS [80PC],
'' AS [60PC],
'' AS [50PC],
'' AS ADNOTURNO,
'' AS DSRHORAEXTRA
FROM 
afastamento a
INNER JOIN tb_colaborador c ON a.id_colaborador = c.id_colaborador
INNER JOIN admissao ad on a.id_colaborador = ad.id_colaborador
WHERE 
bool_descontardias = 1
AND
((DATEPART(MONTH, periodo_de) = CASE WHEN @MesCompetencia = 1 THEN 12 ELSE @MesCompetencia - 2 END)
AND 
(DATEPART(YEAR, periodo_de) = CASE WHEN @MesCompetencia = 1 THEN @AnoCompetencia - 1 ELSE @AnoCompetencia END))
OR 
(mes_desconto = @MesCompetencia AND ano_desconto = @AnoCompetencia)
AND
a.atraso is not null
AND 
ad.status <> 'inativo'
GROUP BY c.nome

UNION 

SELECT  
c.nome AS COLABORADOR,
'' AS FALTAS,
'' AS DSRFALTAS,
CAST(DATEADD(MILLISECOND,SUM(DATEDIFF(MILLISECOND, 0, CAST(a.atraso AS DATETIME))),0) AS TIME(0)) AS ATRASO ,
'' AS [100PC],
'' AS [80PC],
'' AS [60PC],
'' AS [50PC],
'' AS ADNOTURNO,
'' AS DSRHORAEXTRA
FROM afastamento a
INNER JOIN tb_colaborador c ON a.id_colaborador = c.id_colaborador
INNER JOIN admissao ad on a.id_colaborador = ad.id_colaborador
WHERE 
id_motivoafastamento = 19 
AND
((DATEPART(MONTH, periodo_de) = CASE WHEN @MesCompetencia = 1 THEN 12 ELSE @MesCompetencia - 2 END)
AND 
(DATEPART(YEAR, periodo_de) = CASE WHEN @MesCompetencia = 1 THEN @AnoCompetencia - 1 ELSE @AnoCompetencia END))
OR 
(mes_desconto = @MesCompetencia AND ano_desconto = @AnoCompetencia)
AND
a.atraso is not null
AND 
ad.status <> 'inativo'
GROUP BY c.nome

UNION

SELECT  
c.nome AS COLABORADOR,
'' AS FALTAS,
'' AS DSRFALTAS,
'' AS ATRASO,
(select dbo.ConvertTimeToHHMMSS((select total_second = SUM(DATEPART(SECOND, h.pct_100) + 60 * DATEPART(MINUTE, h.pct_100) + 3600 * DATEPART(HOUR, h.pct_100))), 's'))   AS [100PC],
(select dbo.ConvertTimeToHHMMSS((select total_second = SUM(DATEPART(SECOND, h.pct_80) + 60 * DATEPART(MINUTE, h.pct_80) + 3600 * DATEPART(HOUR, h.pct_80))), 's'))		AS [80PC],
(select dbo.ConvertTimeToHHMMSS((select total_second = SUM(DATEPART(SECOND, h.pct_60) + 60 * DATEPART(MINUTE, h.pct_60) + 3600 * DATEPART(HOUR, h.pct_60))), 's'))		AS [60PC],
(select dbo.ConvertTimeToHHMMSS((select total_second = SUM(DATEPART(SECOND, h.pct_50) + 60 * DATEPART(MINUTE, h.pct_50) + 3600 * DATEPART(HOUR, h.pct_50))), 's'))		AS [50PC],
(select dbo.ConvertTimeToHHMMSS((select total_second = SUM(DATEPART(SECOND, h.adicional_noturno) + 60 * DATEPART(MINUTE, h.adicional_noturno) + 3600 * DATEPART(HOUR, h.adicional_noturno))), 's')) AS [ADNOTURNO],
SUM(h.dsr) AS DSR
FROM horas_extras h
INNER JOIN tb_colaborador c ON h.id_colaborador = c.id_colaborador
INNER JOIN admissao ad on h.id_colaborador = ad.id_colaborador
WHERE 
(mes_pagamento = @MesCompetencia AND ano_pagamento = @AnoCompetencia)
AND 
ad.status <> 'inativo'
GROUP BY c.nome
ORDER BY c.nome

O resultado atual é este:

Vejam o caso da Aline. Eu gostaria de mostra o conteúdo das 2 linhas em 1 só.

Desde já, obrigado :)


Leonardo D'Amato



Viewing all articles
Browse latest Browse all 6

Latest Images

Pangarap Quotes

Pangarap Quotes

Vimeo 10.7.0 by Vimeo.com, Inc.

Vimeo 10.7.0 by Vimeo.com, Inc.

HANGAD

HANGAD

MAKAKAALAM

MAKAKAALAM

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Trending Articles


Long Distance Relationship Tagalog Love Quotes


Tagalog Long Distance Relationship Love Quotes


Libros para colorear


Mandalas de flores para colorear


Dibujos para colorear de perros


Renos para colorear


mayabang Quotes, Torpe Quotes, tanga Quotes


RE: Mutton Pies (mely)


Ang Nobela sa “From Darna to ZsaZsa Zaturnnah: Desire and Fantasy, Essays on...


Amarula African Gin


Pangarap Quotes


Gwapo Quotes : Babaero Quotes


Girasoles para colorear


Sapos para colorear


Vacas para colorear


Dromedario para colorear


Love Quotes Tagalog


Mga Tala sa “Unang Siglo ng Nobela sa Filipinas” (2009) ni Virgilio S. Almario


El Vibora (1971) by Francisco V. Coching and Federico C. Javinal


Version 0.8.5 – Peb txhawb tus Lao heev





Latest Images

Pangarap Quotes

Pangarap Quotes

Vimeo 10.7.0 by Vimeo.com, Inc.

Vimeo 10.7.0 by Vimeo.com, Inc.

HANGAD

HANGAD

MAKAKAALAM

MAKAKAALAM

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC