none
CONSULTA COM 3 TABELAS DIFERENTES RRS feed

  • Pergunta

  • BOA TARDE A TODOS

    TENHO NA TABELA SRC010 (VALORES MENSAIS)OS CAMPOS:

    RC_MAT, RC_PD, RC_CC E RC_VALOR

    TENHO NA SRR010 (VALORES RESCICAO)OS CAMPOS:

    RR_MAT, RR_PD, RR_CC E RR_VALOR

    TENHO NA SRA010 (TABELA DE FUNCIONARIOS) OS CAMPOS:

    RA_MAT, RA_REFCTA, RA_CATFUNC

    OS CAMPOS QUE TODAS ESSAS TABELAS TEM EM COMUM SÃO MAT, FILIAL E D_E_L_E_T_

     

    EU CONSEGUI FAZER AS DUAS CONSULTAS ABAIXO E ELAS ESTAO FUNCIONANDO PERFEITAMENTE POREM EU GOSTARIA DE FAZER UMA CONSULTA UNICA PARA TRAZER O RESULTADO EM APENAS UMA CONSULTA E NÃO DUAS

    PRECISO PEGAR TODOS OS FUNCIONARIOS QUE TIVERAM A VERBA '322' QUE É CONTRIBUICAO SINDICAL DESCONTADA EM SEU SALARIO OU RESCICAO E AGRUPAR POR CENTRO DE CUSTO, POREM O FUNCIONARIO TEM QUE SER DO TIPO (RA_REFCTA = '2') E (RA_CATFUNC DIFERENTE DE 'A' OU 'P') E A DATA DE PAGAMENTO TEM QUE SER 05/04/2010 NO CASO DE ESTAR NA TABELA SRC010 E DE 01/03/2010 ATÉ 31/03/2010 NO CASO DA TABELA SRR010. ATÉ AQUI SEM PROBLEMAS EU CONSIGO FAZER, O PROBLEMA É O SEGUINTE

    EU POR EXEMPLO FOI DESCONTADO A VERBA 322 E COMO SOU FUNCIONARIO ATIVO MEUS LANCAMENTOS FICAM TABELA DE MOVIMENTO MENSAL (SRC010)

    POREM O JOAO FOI DEMITIDO ENTAO A VERBA 322 DELE NÃO APARECE NO MOVIMENTO MENSAL(SRC010) E SIM NA TABELA DE RESCICAO (SRR010)

    POREM QUANDO EU VOU FAZER A QUERY MEU CHEFE QUER SABER EM UM RELATORIO SÓ QUANTO ELE DESCONTOU DOS FUNCIONARIOS INDEPENDENTE SE ELES ESTAO ATIVOS OU NAO. ABAIXO ESTAO MINHAS QUERYS SEPARADAS.

    SELECT  RC_CC, SUM(RC_VALOR) TOTMM  FROM SRC010 RC
    RIGHT JOIN SRA010 RA
    ON (RC.RC_MAT = RA.RA_MAT) AND (RC.D_E_L_E_T_ = '' AND RA.D_E_L_E_T_ = '') AND (RC.RC_FILIAL = RA.RA_FILIAL)
    AND (RC_PD LIKE '322') AND (RA_REFCTA LIKE '2') AND (RA_CATFUNC <> 'A' OR RA_CATFUNC <> 'P') AND (RC_DATA LIKE '20100405')
    GROUP BY RC_CC
    ORDER BY RC_CC

    SELECT  RR_CC, SUM(RR.RR_VALOR) TOTRES FROM SRR010 RR
    RIGHT JOIN SRA010 RA
    ON (RR.RR_MAT = RA.RA_MAT) AND (RR.D_E_L_E_T_ = '' AND RA.D_E_L_E_T_ = '') AND (RR.RR_FILIAL = RA.RA_FILIAL)
    AND (RA_REFCTA LIKE '2') AND (RA_CATFUNC <> 'A' OR RA_CATFUNC <> 'P')
    AND (RR_PD LIKE '322') AND  (RR_PD  LIKE '322')AND (RR_DATA BETWEEN '20100301' AND '20100331')
    GROUP BY RR_CC
    ORDER BY RR_CC

     

    POR FAVOR ME AJUDEM.

    Att
    Marcio Santana
    marcio@isotec-eng.com.br   ou   marcio.inf@hotmail.com

     

    quinta-feira, 8 de abril de 2010 19:41

Respostas

  • Olá Márcio,

     

    Você já tentou fazer um UNION??

     

    SELECT  RC_CC, SUM(RC_VALOR) TOTMM  FROM SRC010 RC
    RIGHT JOIN SRA010 RA
    ON (RC.RC_MAT = RA.RA_MAT) AND (RC.D_E_L_E_T_ = '' AND RA.D_E_L_E_T_ = '') AND (RC.RC_FILIAL = RA.RA_FILIAL)
    AND (RC_PD LIKE '322') AND (RA_REFCTA LIKE '2') AND (RA_CATFUNC <> 'A' OR RA_CATFUNC <> 'P') AND (RC_DATA LIKE '20100405') 
    GROUP BY RC_CC 
    UNION ALL
    SELECT  RR_CC, SUM(RR.RR_VALOR) TOTRES FROM SRR010 RR
    RIGHT JOIN SRA010 RA
    ON (RR.RR_MAT = RA.RA_MAT) AND (RR.D_E_L_E_T_ = '' AND RA.D_E_L_E_T_ = '') AND (RR.RR_FILIAL = RA.RA_FILIAL) 
    AND (RA_REFCTA LIKE '2') AND (RA_CATFUNC <> 'A' OR RA_CATFUNC <> 'P')
    AND (RR_PD LIKE '322') AND  (RR_PD  LIKE '322')AND (RR_DATA BETWEEN '20100301' AND '20100331')
    GROUP BY RR_CC 
    

    Veja se ajuda.

     

    Abraço


    Classifiquem as respostas. O Fórum agradece!! This posting is provided "AS IS" with no warranties, and confers no rights.
    • Sugerido como Resposta Clayton Santos sexta-feira, 9 de abril de 2010 14:41
    • Marcado como Resposta Fernanda Simões segunda-feira, 12 de abril de 2010 16:58
    quinta-feira, 8 de abril de 2010 19:56