Usuário com melhor resposta
Unir Select

Pergunta
-
Boa Tarde!
Prezados, eu consegui colocar um Select dentro de outro, ate ai OK, esta trazendo as informações que preciso, porem agora eu preciso fazer a conta do valor que esta dentro do Select F1 e nao estou conseguindo.
SELECT
COUNT (*)DEMITIDOS,
SUM(PFFINANC.VALOR)VALOR ,
(
SELECT SUM(F.VALORBAIXADO) VALOR FROM FLAN F WHERE CODCOLIGADA = '9'
AND MESDECOMPETENCIA = '2016-07-01'
AND HISTORICO LIKE 'Líquido Rescisão%' ) F1
FROM PFFINANC
INNER JOIN PFUNC AS F ON F.CODCOLIGADA = PFFINANC.CODCOLIGADA AND F.CHAPA = PFFINANC.CHAPA
WHERE
F.CODSITUACAO = 'D'
AND PFFINANC.CODCOLIGADA = '9'
AND PFFINANC.NROPERIODO = '5'
AND PFFINANC.MESCOMP = '7'
AND PFFINANC.ANOCOMP = '2016'
AND PFFINANC.CODEVENTO = '0150'O que eu preciso
COUNT (*)DEMITIDOS,
SUM(PFFINANC.VALOR)VALORSUM (F1.VALOR) - SUM(PFFINANC.VALOR) ................................ ,
Obrigado a todos pela ajuda;
Respostas
-
Olá Amigo,
Você pode utilizar de CTE (Commom Table Expression). Ficaria assim:
WITH Tabela AS ( SELECT COUNT (*) DEMITIDOS, SUM(PFFINANC.VALOR) VALOR, ( SELECT SUM(F.VALORBAIXADO) VALOR FROM FLAN F WHERE CODCOLIGADA = '9' AND MESDECOMPETENCIA = '2016-07-01' AND HISTORICO LIKE 'Líquido Rescisão%' ) F1 FROM PFFINANC INNER JOIN PFUNC AS F ON F.CODCOLIGADA = PFFINANC.CODCOLIGADA AND F.CHAPA = PFFINANC.CHAPA ) SELECT DEMITIDOS, VALOR, SUM(F1) AS TOTAL_F1 FROM Tabela
- Sugerido como Resposta Marcelo Castelo Branco Alves da Silva quarta-feira, 24 de agosto de 2016 19:16
- Marcado como Resposta Ronnie Von segunda-feira, 26 de setembro de 2016 17:19
-
Deleted
- Marcado como Resposta Ronnie Von segunda-feira, 26 de setembro de 2016 17:19
-
Caso queira reutilizar o valor de F1, você também pode usar CROSS APPLY com a sua subquery, que permitirá você ligar as tabelas envolvidas do SELECT principal com sua SUBQUERY.
- Marcado como Resposta Ronnie Von segunda-feira, 26 de setembro de 2016 17:19
-
Deleted
- Marcado como Resposta Ronnie Von segunda-feira, 26 de setembro de 2016 17:19
Todas as Respostas
-
Olá Amigo,
Você pode utilizar de CTE (Commom Table Expression). Ficaria assim:
WITH Tabela AS ( SELECT COUNT (*) DEMITIDOS, SUM(PFFINANC.VALOR) VALOR, ( SELECT SUM(F.VALORBAIXADO) VALOR FROM FLAN F WHERE CODCOLIGADA = '9' AND MESDECOMPETENCIA = '2016-07-01' AND HISTORICO LIKE 'Líquido Rescisão%' ) F1 FROM PFFINANC INNER JOIN PFUNC AS F ON F.CODCOLIGADA = PFFINANC.CODCOLIGADA AND F.CHAPA = PFFINANC.CHAPA ) SELECT DEMITIDOS, VALOR, SUM(F1) AS TOTAL_F1 FROM Tabela
- Sugerido como Resposta Marcelo Castelo Branco Alves da Silva quarta-feira, 24 de agosto de 2016 19:16
- Marcado como Resposta Ronnie Von segunda-feira, 26 de setembro de 2016 17:19
-
Deleted
- Marcado como Resposta Ronnie Von segunda-feira, 26 de setembro de 2016 17:19
-
Caso queira reutilizar o valor de F1, você também pode usar CROSS APPLY com a sua subquery, que permitirá você ligar as tabelas envolvidas do SELECT principal com sua SUBQUERY.
- Marcado como Resposta Ronnie Von segunda-feira, 26 de setembro de 2016 17:19
-
Amigos Boa Tarde!
Vi o exemplos de voces, esta perfeito, porem quanto eu coloco mais um coluna chamada MES ele nao traz, entao fiz um escopo abaixo do que preciso, para ver se fica melhor explicado.
--- 1 sqL BUSCAR VALOR DA FOLHA
SELECT
PFPERFF.MESCOMP MES,
LIQUIDO LIQUIDO,
FROM PFPERFF
INNER JOIN PFUNC AS F ON F.CODCOLIGADA = PFPERFF.CODCOLIGADA AND F.CHAPA = PFPERFF.CHAPA
WHERE
-- PFPERFF.MESCOMP = '7'
NROPERIODO = '4'
AND PFPERFF.ANOCOMP = '2016'
AND PFPERFF.CODCOLIGADA = '9'
----- 2 VALOR DO FINANCEIRO
SELECT
MONTH(MESDECOMPETENCIA) MES,
SUM(VALORBAIXADO) VALOR
FROM FLAN
WHERE
CODCOLIGADA = '9'
AND YEAR(MESDECOMPETENCIA) = '2016'
AND HISTORICO LIKE 'Liquido Folha de Pagamento%'
GROUP BY MONTH(MESDECOMPETENCIA)
----- 3 PEGA FUNCIONARIOS ADMTIDOS NO MES
SELECT
MONTH(DATAADMISSAO) ,
0 LIQUIDO,
0 VALOR,
COUNT(CHAPA) ADMITIDOS
FROM PFUNC
WHERE
--MONTH(DATAADMISSAO) = '08'
YEAR(DATAADMISSAO) = '2016'
AND CODCOLIGADA = '9'
AND CODSITUACAO = 'A'
GROUP BY MONTH(DATAADMISSAO)
Resultado Esperado
MES LIQUIDO VALORFIN ADMITIDOS
1 13333 13333 3
2 33444 34444 4
3 44443 44444 4obrigado a todos
-
Deleted
- Marcado como Resposta Ronnie Von segunda-feira, 26 de setembro de 2016 17:19
-