› Fóruns › SQL e PL/SQL › [DUVIDA] QUERY
- Este tópico contém 1 resposta, 2 vozes e foi atualizado pela última vez 15 anos, 2 meses atrás por
burga.
-
AutorPosts
-
16 de março de 2011 às 10:00 pm #98562
VINI85
ParticipanteBoa tarde Galera,
Preciso de uma query que me traga as infomações em somente uma linha. Na query abaixo para cada mês acrecenta uma linha para o funcionario….preciso que saia conforme exemplo abaixo:
João | 100,00 | 200,00
Segue query
SELECT F.NOME,
FUN.NOME,
FIN1.VALOR,
null,FROM PFUNC F
JOIN PFPERFF PER
ON F.CODCOLIGADA = PER.CODCOLIGADA
AND F.CHAPA = PER.CHAPAJOIN PFFINANC FIN1
ON F.CODCOLIGADA = FIN1.CODCOLIGADA
AND F.CHAPA = FIN1.CHAPA
AND PER.MESCOMP = FIN1.MESCOMP
AND PER.ANOCOMP = FIN1.ANOCOMP
AND PER.NROPERIODO = FIN1.NROPERIODO
AND FIN1.CODEVENTO IN(‘0730′)
AND FIN1.MESCOMP = ’01’JOIN PFUNCAO FUN
ON F.CODFUNCAO = FUN.CODIGO
AND F.CODCOLIGADA = FUN.CODCOLIGADAWHERE F.CODCOLIGADA = ‘547’
AND PER.ANOCOMP = ‘2011’
AND PER.NROPERIODO = ‘2’UNION
SELECT F.NOME,
FUN.NOME,
null,
FIN2.VALORFROM PFUNC F
JOIN PFPERFF PER
ON F.CODCOLIGADA = PER.CODCOLIGADA
AND F.CHAPA = PER.CHAPAJOIN PFFINANC FIN2
ON F.CODCOLIGADA = FIN2.CODCOLIGADA
AND F.CHAPA = FIN2.CHAPA
AND PER.MESCOMP = FIN2.MESCOMP
AND PER.ANOCOMP = FIN2.ANOCOMP
AND PER.NROPERIODO = FIN2.NROPERIODO
AND FIN2.CODEVENTO IN(‘0730′)
AND FIN2.MESCOMP = ’02’JOIN PFUNCAO FUN
ON F.CODFUNCAO = FUN.CODIGO
AND F.CODCOLIGADA = FUN.CODCOLIGADAWHERE F.CODCOLIGADA = ‘547’
AND PER.ANOCOMP = ‘2011’
AND PER.NROPERIODO = ‘2’17 de março de 2011 às 4:13 pm #98566burga
ParticipanteOi Vini,
Podemos sumir com esse UNION, conforme a consulta abaixo… O resto, se eu entendi bem o que você está querendo, é só usar um group by.
SELECT F.NOME,
FUN.NOME,
SUM(DECODE(FIN.MESCOMP,'01',FIN.VALOR,0)),
SUM(DECODE(FIN.MESCOMP,'02',FIN.VALOR,0))
FROM PFUNC F
JOIN PFPERFF PER
ON F.CODCOLIGADA = PER.CODCOLIGADA
AND F.CHAPA = PER.CHAPA
JOIN PFFINANC FIN
ON F.CODCOLIGADA = FIN.CODCOLIGADA
AND F.CHAPA = FIN.CHAPA
AND PER.MESCOMP = FIN.MESCOMP
AND PER.ANOCOMP = FIN.ANOCOMP
AND PER.NROPERIODO = FIN.NROPERIODO
AND FIN.CODEVENTO IN('0730')
AND FIN.MESCOMP IN ('01','02')
JOIN PFUNCAO FUN
ON F.CODFUNCAO = FUN.CODIGO
AND F.CODCOLIGADA = FUN.CODCOLIGADA
WHERE F.CODCOLIGADA = '547'
AND PER.ANOCOMP = '2011'
AND PER.NROPERIODO = '2'
GROUP BY F.NOME, FUN.NOME;Se o código ainda não estiver 100%, pelo menos você já tem um ponto de partida…
Abraços
-
AutorPosts
- Você deve fazer login para responder a este tópico.
› Fóruns › SQL e PL/SQL › [DUVIDA] QUERY