none
Unir Select RRS feed

  • 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)VALOR

    SUM (F1.VALOR) -   SUM(PFFINANC.VALOR) ................................ ,
          

    Obrigado a todos pela ajuda;

          
    quarta-feira, 24 de agosto de 2016 18:55

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

    quarta-feira, 24 de agosto de 2016 19:14
  • Deleted
    • Marcado como Resposta Ronnie Von segunda-feira, 26 de setembro de 2016 17:19
    quarta-feira, 24 de agosto de 2016 22:02
  • 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
    sexta-feira, 16 de setembro de 2016 21:37
  • Deleted
    • Marcado como Resposta Ronnie Von segunda-feira, 26 de setembro de 2016 17:19
    quarta-feira, 21 de setembro de 2016 11:32

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

    quarta-feira, 24 de agosto de 2016 19:14
  • Deleted
    • Marcado como Resposta Ronnie Von segunda-feira, 26 de setembro de 2016 17:19
    quarta-feira, 24 de agosto de 2016 22:02
  • 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
    sexta-feira, 16 de setembro de 2016 21:37
  • 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      4

    obrigado a todos


    terça-feira, 20 de setembro de 2016 20:08
  • Deleted
    • Marcado como Resposta Ronnie Von segunda-feira, 26 de setembro de 2016 17:19
    quarta-feira, 21 de setembro de 2016 11:32
  • Boa Tarde!

    Amigos Muito Obrigado, Jose Diz, fiz baseado no seu exemplo, valeu pela ajuda.

    Obrigado 

    segunda-feira, 26 de setembro de 2016 17:19