Pular para o conteúdo

Fóruns SQL e PL/SQL [RESOLVIDO] Ajuda com query, por favorrrr…. [RESOLVIDO] Ajuda com query, por favorrrr….

#96446
burga
Participante

    Se você quer juntar tudo em uma só consulta, você conseguiria fazer mais ou menos assim:

    SELECT CNPJ,FANTASIA, SUM(VL_PROC), SUM(VL_AUT_PROC), SUM(CONT_PROC_01), SUM(CONT_PROC_02), SUM(VL_CONS), SUM(VL_AUT_CONS), SUM(CONT_CONS_01), SUM(CONT_CONS_02) FROM (
    SELECT P.CNPJ, D.FANTASIA, SUM(A.VALOR) VL_PROC, SUM(A.VALORAUTORIZADOPGTO) VL_AUT_PROC, COUNT() CONT_PROC_01, COUNT(DECODE(A.STATUSAUDITORIA,'NAO AUDITADO',NULL,1)) CONT_PROC_02, NULL VL_CONS, NULL VL_AUT_CONS, NULL CONT_CONS_01, NULL CONT_CONS_02
    FROM GUIA_DADO H
    JOIN GUIA_PROCEDIMENTO A ON ( H.IDGUIADADO = A.IDGUIADADO )
    JOIN PRESTADOR_CONTRATO G ON ( A.IDCONTRATO = G.ID )
    JOIN PRESTADOR_DETAIL P ON (P.IDDETAIL = G.IDPRESTADORDETAIL)
    JOIN PRESTADOR_DADO D ON ( P.IDPRESTADOR = D.IDPRESTADOR )
    WHERE A.STATUS = 'LIBERADO'
    AND A.STATUSAUDITORIA = R('NAO AUDITADO')
    AND H.DATAEMISSAO
    BETWEEN TO_DATE('01/09/' || TO_CHAR(H.DATAEMISSAO,'yyyy'),'dd/mm/yyyy')
    AND LAST_DAY(TO_DATE('01/09/' || TO_CHAR(H.DATAEMISSAO,'yyyy'),'dd/mm/yyyy'))
    GROUP BY P.CNPJ, D.FANTASIA
    UNION ALL
    SELECT P.CNPJ, D.FANTASIA, NULL VL_PROC, NULL VL_AUT_PROC, NULL CONT_PROC_01, NULL CONT_PROC_02, SUM(A.VALOR) VL_CONS, SUM(A.VALORAUTORIZADOPGTO) VL_AUT_CONS, COUNT(
    ) CONT_CONS_01, COUNT(DECODE(A.STATUSAUDITORIA,'NAO AUDITADO',NULL,1)) CONT_CONS_02
    FROM GUIA_DADO H
    JOIN GUIA_CONSULTA A ON ( H.IDGUIADADO = A.IDGUIADADO )
    JOIN PRESTADOR_CONTRATO G ON ( A.IDCONTRATO = G.ID )
    JOIN PRESTADOR_DETAIL P ON (P.IDDETAIL = G.IDPRESTADORDETAIL)
    JOIN PRESTADOR_DADO D ON ( P.IDPRESTADOR = D.IDPRESTADOR )
    WHERE A.STATUS = 'LIBERADO' AND A.FLAG = 'FINALIZADO'
    AND A.STATUSAUDITORIA = R('NAO AUDITADO')
    AND H.DATAEMISSAO
    BETWEEN TO_DATE('01/09/' || TO_CHAR(H.DATAEMISSAO,'yyyy'),'dd/mm/yyyy')
    AND LAST_DAY(TO_DATE('01/09/' || TO_CHAR(H.DATAEMISSAO,'yyyy'),'dd/mm/yyyy'))
    GROUP BY P.CNPJ, D.FANTASIA
    ) GROUP BY CNPJ, FANTASIA ;

    Mas pode ter algum errinho aí pelo meio, mas acho que a idéia dá pra você tentar aproveitar… Espero que entenda o que eu tentei fazer!

    O lance da data eu troquei mais pro caso de haver um índice na coluna! Mas ainda assim, o lance do tunning, com certeza tem gente mais qualificada do que eu por aqui pra te ajudar melhor.