Pular para o conteúdo

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

#96496
luan
Participante

    Fala mestre Burga, desculpe a demora para responder.
    Então a função R é apenas para tirar acentuações, eu tentei sem ela e continuou o problema, fiz diversas alterações naquela query também mas não consegui solucionar..
    As querys quando rodadas individualmente o resultado dos counts e sum vem errado também.
    Eu fiz os ddls das tabelas resumidas, se puder e tiver algum tempinho agradeço muito a ajuda…
    Segue abaixo muito obrigado.


    DROP TABLE GUIA_DADO;
    DROP TABLE GUIA_PROCEDIMENTO;
    DROP TABLE GUIA_CONSULTA;
    DROP TABLE PRESTADOR_DETAIL;

    CREATE TABLE "PRESTADOR_DETAIL"
    ( "IDDETAIL" NUMBER CONSTRAINT "NM_PRESTADORDETAIL_00" NOT NULL ENABLE,
    "CNPJ" VARCHAR2(15 BYTE) CONSTRAINT "NM_PRESTADORDETAIL_02" NOT NULL ENABLE,
    "FANTASIA" VARCHAR2(170 BYTE) CONSTRAINT "NM_PRESTADORDETAIL_03" NOT NULL ENABLE,
    CONSTRAINT "NM_PRESTADORDETAIL_22" PRIMARY KEY ("IDDETAIL")
    )

    CREATE TABLE "GUIA_DADO"
    ( "IDGUIADADO" NUMBER CONSTRAINT "NM_GUIADADO_00" NOT NULL ENABLE,
    "TIPOGUIA" VARCHAR2(20 BYTE) CONSTRAINT "NM_GUIADADO_04" NOT NULL ENABLE,
    "FLAG" VARCHAR2(12 BYTE) DEFAULT 'NAO AUDITADO' CONSTRAINT "NM_GUIADADO_06" NOT NULL ENABLE,
    "DATAEMISSAO" DATE DEFAULT SYSDATE CONSTRAINT "NM_GUIADADO_16" NOT NULL ENABLE,
    CONSTRAINT "NM_GUIADADO_10" CHECK (flag in ('AUDITADO', 'NAO AUDITADO')) ENABLE,
    CONSTRAINT "NM_GUIADADO_09" PRIMARY KEY ("IDGUIADADO")
    )

    CREATE TABLE "GUIA_PROCEDIMENTO"
    ( "IDPROCEDIMENTO" NUMBER CONSTRAINT "NM_PROCEDIMENTO_00" NOT NULL ENABLE,
    "IDGUIADADO" NUMBER CONSTRAINT "NM_PROCEDIMENTO_01" NOT NULL ENABLE,
    "VALOR" NUMBER(15,2) CONSTRAINT "NM_PROCEDIMENTO_11" NOT NULL ENABLE,
    "STATUS" VARCHAR2(12 BYTE) CONSTRAINT "NM_PROCEDIMENTO_12" NOT NULL ENABLE,
    "STATUSAUDITORIA" VARCHAR2(20 BYTE) DEFAULT 'NAO AUDITADO' NOT NULL ENABLE,
    "VALORAUTORIZADOPGTO" NUMBER(15,2),
    "IDPRESTADORDETAIL" NUMBER,
    CONSTRAINT "NM_PROCEDIMENTO_20" CHECK (status in ('LIBERADO', 'RECUSADO', 'RETORNO', 'PARA ANALISE', 'PREVIA AUTORIZACAO','CANCELADO')) ENABLE,
    CONSTRAINT "NM_PROCEDIMENTO_16" PRIMARY KEY ("IDGUIADADO", "IDPROCEDIMENTO")
    )

    CREATE TABLE "GUIA_CONSULTA"
    ( "IDCONSULTA" NUMBER CONSTRAINT "NM_GUIACONSULTA_00" NOT NULL ENABLE,
    "IDGUIADADO" NUMBER CONSTRAINT "NM_GUIACONSULTA_01" NOT NULL ENABLE,
    "VALOR" NUMBER(15,2) CONSTRAINT "NM_GUISCONSULTA_07" NOT NULL ENABLE,
    "STATUS" VARCHAR2(18 BYTE) CONSTRAINT "NM_GUIACONSULTA_08" NOT NULL ENABLE,
    "FLAG" VARCHAR2(10 BYTE) DEFAULT 'EM ABERTO' CONSTRAINT "NM_GUIACONSULTA_09" NOT NULL ENABLE,
    "STATUSAUDITORIA" VARCHAR2(20 BYTE) DEFAULT 'NAO AUDITADO' NOT NULL ENABLE,
    "VALORAUTORIZADOPGTO" NUMBER(15,2),
    "IDPRESTADORDETAIL" NUMBER,
    CONSTRAINT "NM_GUIACONSULTA_17" CHECK (status in ('LIBERADO', 'RECUSADO', 'RETORNO', 'EM ANALISE', 'PREVIA AUTORIZACAO','CANCELADO')) ENABLE,
    CONSTRAINT "NM_GUIACONSULTA_18" CHECK (flag in ('EM ABERTO', 'CANCELADO', 'FINALIZADO')) ENABLE,
    CONSTRAINT "NM_GUIACONSULTA_13" PRIMARY KEY ("IDCONSULTA")
    )

    INSERT INTO PRESTADOR_DETAIL VALUES(1,'11111111111111','CONSULTORIO 1');
    INSERT INTO PRESTADOR_DETAIL VALUES(2,'22222222222222','LABORATORIO 1');
    INSERT INTO GUIA_DADO VALUES(12280, 'CONSULTA', 'NAO AUDITADO', SYSDATE-5);
    INSERT INTO GUIA_DADO VALUES(12281, 'CONSULTA', 'NAO AUDITADO',SYSDATE-6);
    INSERT INTO GUIA_DADO VALUES(12282, 'CONSULTA', 'NAO AUDITADO',SYSDATE-7);
    INSERT INTO GUIA_DADO VALUES(12283, 'CONSULTA', 'NAO AUDITADO',SYSDATE-8);
    INSERT INTO GUIA_DADO VALUES(12284, 'CONSULTA', 'NAO AUDITADO',SYSDATE-9);
    INSERT INTO GUIA_DADO VALUES(12285, 'CONSULTA', 'NAO AUDITADO',SYSDATE-1);
    INSERT INTO GUIA_DADO VALUES(12286, 'CONSULTA', 'NAO AUDITADO',SYSDATE-2);
    INSERT INTO GUIA_DADO VALUES(12287, 'CONSULTA', 'NAO AUDITADO',SYSDATE-3);
    INSERT INTO GUIA_DADO VALUES(12288, 'CONSULTA', 'NAO AUDITADO',SYSDATE-4);
    INSERT INTO GUIA_DADO VALUES(12289, 'CONSULTA', 'NAO AUDITADO',SYSDATE-5);
    INSERT INTO GUIA_DADO VALUES(12290, 'CONSULTA', 'NAO AUDITADO',SYSDATE-6);
    INSERT INTO GUIA_CONSULTA VALUES(1,12280,123.0,'LIBERADO','FINALIZADO','NAO AUDITADO',123.0,1);
    INSERT INTO GUIA_CONSULTA VALUES(2,12281,180.0,'LIBERADO','FINALIZADO','NAO AUDITADO',180.0,1);
    INSERT INTO GUIA_CONSULTA VALUES(3,12282,80.0,'LIBERADO','FINALIZADO','NAO AUDITADO',80.0,1);
    INSERT INTO GUIA_CONSULTA VALUES (4,12283,40.0,'LIBERADO','FINALIZADO','NAO AUDITADO',40.0,1);
    INSERT INTO GUIA_CONSULTA VALUES (5,12284,80.0,'LIBERADO','FINALIZADO','AUTORIZADO',80.0,1);
    INSERT INTO GUIA_CONSULTA VALUES(6,12285,70.0,'LIBERADO','FINALIZADO','AUTORIZADO',80.0,1);
    INSERT INTO GUIA_PROCEDIMENTO VALUES(1,12286,60.0,'LIBERADO','NAO AUDITADO',60.0,2);
    INSERT INTO GUIA_PROCEDIMENTO VALUES(2,12287,90.0,'LIBERADO','NAO AUDITADO',90.0,2);
    INSERT INTO GUIA_PROCEDIMENTO VALUES(3,12288,50.0,'LIBERADO','NAO AUDITADO',50.0,2);
    INSERT INTO GUIA_PROCEDIMENTO VALUES(4,12289,90.0,'LIBERADO','AUTORIZADO',90.0,2);
    INSERT INTO GUIA_PROCEDIMENTO VALUES(5,12290,190.0,'LIBERADO','AUTORIZADO',190.0,2);

    E a query abaixo:

    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, P.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_DETAIL P ON (P.IDDETAIL = A.IDPRESTADORDETAIL)
    WHERE A.STATUS = 'LIBERADO'
    AND A.STATUSAUDITORIA = 'NAO AUDITADO'
    AND H.DATAEMISSAO
    BETWEEN TO_DATE('01/10/' || TO_CHAR(H.DATAEMISSAO,'yyyy'),'dd/mm/yyyy')
    AND LAST_DAY(TO_DATE('01/10/' || TO_CHAR(H.DATAEMISSAO,'yyyy'),'dd/mm/yyyy'))
    GROUP BY P.CNPJ, P.FANTASIA, NULL, NULL, NULL, NULL
    UNION ALL
    SELECT P.CNPJ, P.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_DETAIL P ON (P.IDDETAIL = A.IDPRESTADORDETAIL)
    WHERE A.STATUS = 'LIBERADO' AND A.FLAG = 'FINALIZADO'
    AND A.STATUSAUDITORIA = 'NAO AUDITADO'
    AND H.DATAEMISSAO
    BETWEEN TO_DATE('01/10/' || TO_CHAR(H.DATAEMISSAO,'yyyy'),'dd/mm/yyyy')
    AND LAST_DAY(TO_DATE('01/10/' || TO_CHAR(H.DATAEMISSAO,'yyyy'),'dd/mm/yyyy'))
    GROUP BY P.CNPJ, P.FANTASIA
    ) GROUP BY CNPJ, FANTASIA ;

    Abs