Fórum SELECT LEVANDO MAIS DE 5 MINUTOS #536802

10/11/2015

0

Bom dia pessoal, fiz um select pra criar um relatório de contas à pagar. O relatório acabou exigindo que eu criasse vários subselects e não sei exatamente se é por conta disso que está tão lento! Segue o código:
Obs: Banco de Dados Oracle e estou usando o TOAD.

O relatório Básicamente tem que trazer as informações assim:

SEMANA 1 Total Contas a Pagar daquele dia
01-01-2015(segunda) - 20000
01-02-2015(terça) - 30000
01-03-2015(quarta) - 40000
01-04-2015(quinta) - 10000
01-05-2015(sexta) - 0

SEMANA 2
01-08-2015(segunda) - 12000
01-09-2015(terça) - 1000
01-10-2015(quarta) - 2100
01-11-2015(quinta) - 500
01-12-2015(sexta) - 1200






SELECT
DISTINCT
TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') AS MES2,
TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MONTH') AS MES,
TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'W') AS SEMANA,

--SEMANAS DIAS--

--SEMANA1
(SELECT DISTINCT TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'DD/MM/YYYY') FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 2 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W') = 1 AND (usf_ultimo_dia_util(FIN.DTVENC) >= '01/11/2015' AND usf_ultimo_dia_util(FIN.DTVENC) <= '20/11/2015') AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') ) AS SEG_S1,
(SELECT DISTINCT TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'DD/MM/YYYY') FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 3 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W') = 1 AND (usf_ultimo_dia_util(FIN.DTVENC) >= '01/11/2015' AND usf_ultimo_dia_util(FIN.DTVENC) <= '20/11/2015') AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') ) AS TER_S1,
(SELECT DISTINCT TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'DD/MM/YYYY') FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 4 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W') = 1 AND (usf_ultimo_dia_util(FIN.DTVENC) >= '01/11/2015' AND usf_ultimo_dia_util(FIN.DTVENC) <= '20/11/2015') AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') ) AS QUAR_S1,
(SELECT DISTINCT TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'DD/MM/YYYY') FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 5 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W') = 1 AND (usf_ultimo_dia_util(FIN.DTVENC) >= '01/11/2015' AND usf_ultimo_dia_util(FIN.DTVENC) <= '20/11/2015') AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') ) AS QUIN_S1,
(SELECT DISTINCT TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'DD/MM/YYYY') FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 6 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W') = 1 AND (usf_ultimo_dia_util(FIN.DTVENC) >= '01/11/2015' AND usf_ultimo_dia_util(FIN.DTVENC) <= '20/11/2015') AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') ) AS SEX_S1,



--SEMANA2
(SELECT DISTINCT TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'DD/MM/YYYY') FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 2 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W') = 2 AND (usf_ultimo_dia_util(FIN.DTVENC) >= '01/11/2015' AND usf_ultimo_dia_util(FIN.DTVENC) <= '20/11/2015') AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') ) AS SEG_S2,
(SELECT DISTINCT TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'DD/MM/YYYY') FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 3 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W') = 2 AND (usf_ultimo_dia_util(FIN.DTVENC) >= '01/11/2015' AND usf_ultimo_dia_util(FIN.DTVENC) <= '20/11/2015') AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') ) AS TER_S2,
(SELECT DISTINCT TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'DD/MM/YYYY') FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 4 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W') = 2 AND (usf_ultimo_dia_util(FIN.DTVENC) >= '01/11/2015' AND usf_ultimo_dia_util(FIN.DTVENC) <= '20/11/2015') AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') ) AS QUAR_S2,
(SELECT DISTINCT TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'DD/MM/YYYY') FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 5 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W') = 2 AND (usf_ultimo_dia_util(FIN.DTVENC) >= '01/11/2015' AND usf_ultimo_dia_util(FIN.DTVENC) <= '20/11/2015') AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') ) AS QUIN_S2,
(SELECT DISTINCT TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'DD/MM/YYYY') FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 6 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W') = 2 AND (usf_ultimo_dia_util(FIN.DTVENC) >= '01/11/2015' AND usf_ultimo_dia_util(FIN.DTVENC) <= '20/11/2015') AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') ) AS SEX_S2,



--SEMANA3
(SELECT DISTINCT TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'DD/MM/YYYY') FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 2 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W') = 3 AND (usf_ultimo_dia_util(FIN.DTVENC) >= '01/11/2015' AND usf_ultimo_dia_util(FIN.DTVENC) <= '20/11/2015') AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') ) AS SEG_S3,
(SELECT DISTINCT TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'DD/MM/YYYY') FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 3 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W') = 3 AND (usf_ultimo_dia_util(FIN.DTVENC) >= '01/11/2015' AND usf_ultimo_dia_util(FIN.DTVENC) <= '20/11/2015') AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') ) AS TER_S3,
(SELECT DISTINCT TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'DD/MM/YYYY') FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 4 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W') = 3 AND (usf_ultimo_dia_util(FIN.DTVENC) >= '01/11/2015' AND usf_ultimo_dia_util(FIN.DTVENC) <= '20/11/2015') AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') ) AS QUAR_S3,
(SELECT DISTINCT TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'DD/MM/YYYY') FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 5 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W') = 3 AND (usf_ultimo_dia_util(FIN.DTVENC) >= '01/11/2015' AND usf_ultimo_dia_util(FIN.DTVENC) <= '20/11/2015') AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') ) AS QUIN_S3,
(SELECT DISTINCT TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'DD/MM/YYYY') FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 6 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W') = 3 AND (usf_ultimo_dia_util(FIN.DTVENC) >= '01/11/2015' AND usf_ultimo_dia_util(FIN.DTVENC) <= '20/11/2015') AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') ) AS SEX_S3,


--SEMANA4
(SELECT DISTINCT TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'DD/MM/YYYY') FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 2 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W') = 4 AND (usf_ultimo_dia_util(FIN.DTVENC) >= '01/11/2015' AND usf_ultimo_dia_util(FIN.DTVENC) <= '20/11/2015') AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') ) AS SEG_S4,
(SELECT DISTINCT TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'DD/MM/YYYY') FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 3 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W') = 4 AND (usf_ultimo_dia_util(FIN.DTVENC) >= '01/11/2015' AND usf_ultimo_dia_util(FIN.DTVENC) <= '20/11/2015') AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') ) AS TER_S4,
(SELECT DISTINCT TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'DD/MM/YYYY') FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 4 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W') = 4 AND (usf_ultimo_dia_util(FIN.DTVENC) >= '01/11/2015' AND usf_ultimo_dia_util(FIN.DTVENC) <= '20/11/2015') AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') ) AS QUAR_S4,
(SELECT DISTINCT TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'DD/MM/YYYY') FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 5 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W') = 4 AND (usf_ultimo_dia_util(FIN.DTVENC) >= '01/11/2015' AND usf_ultimo_dia_util(FIN.DTVENC) <= '20/11/2015') AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') ) AS QUIN_S4,
(SELECT DISTINCT TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'DD/MM/YYYY') FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 6 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W') = 4 AND (usf_ultimo_dia_util(FIN.DTVENC) >= '01/11/2015' AND usf_ultimo_dia_util(FIN.DTVENC) <= '20/11/2015') AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') ) AS SEX_S4,

--SEMANA5
(SELECT DISTINCT TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'DD/MM/YYYY') FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 2 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W') = 5 AND (usf_ultimo_dia_util(FIN.DTVENC) >= '01/11/2015' AND usf_ultimo_dia_util(FIN.DTVENC) <= '20/11/2015') AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') ) AS SEG_S5,
(SELECT DISTINCT TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'DD/MM/YYYY') FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 3 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W') = 5 AND (usf_ultimo_dia_util(FIN.DTVENC) >= '01/11/2015' AND usf_ultimo_dia_util(FIN.DTVENC) <= '20/11/2015') AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') ) AS TER_S5,
(SELECT DISTINCT TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'DD/MM/YYYY') FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 4 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W') = 5 AND (usf_ultimo_dia_util(FIN.DTVENC) >= '01/11/2015' AND usf_ultimo_dia_util(FIN.DTVENC) <= '20/11/2015') AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') ) AS QUAR_S5,
(SELECT DISTINCT TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'DD/MM/YYYY') FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 5 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W') = 5 AND (usf_ultimo_dia_util(FIN.DTVENC) >= '01/11/2015' AND usf_ultimo_dia_util(FIN.DTVENC) <= '20/11/2015') AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') ) AS QUIN_S5,
(SELECT DISTINCT TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'DD/MM/YYYY') FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 6 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W') = 5 AND (usf_ultimo_dia_util(FIN.DTVENC) >= '01/11/2015' AND usf_ultimo_dia_util(FIN.DTVENC) <= '20/11/2015') AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') ) AS SEX_S5,


---------------------------------------------------------------------EMPRESA 1-----------------------------------------------------
--SEMANA 1
-- VALOR TOTAL SEMANA 1
(SELECT NVL(NVL(SUM(FIN.VLRDESDOB),0),0) FROM TGFFIN FIN WHERE (TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 7 OR TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 1 OR TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 2) AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 1 AND ( FIN.DTVENC >= '01/11/2015'
AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'N' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN2.CODTIPTIT <> 35) AS SEGUNDA_S1_E1,
(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 3 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 1 AND (FIN.DTVENC >= '01/11/2015' AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'N' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS TERCA_S1_E1,
(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 4 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 1 AND (FIN.DTVENC >= '01/11/2015' AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'N' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS QUARTA_S1_E1,
(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 5 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 1 AND (FIN.DTVENC >= '01/11/2015' AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'N' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS QUINTA_S1_E1,
(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 6 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 1 AND (FIN.DTVENC >= '01/11/2015' AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'N' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS SEXTA_S1_E1,
--VALOR PROVISAO SEMANA 1
(SELECT NVL(NVL(SUM(FIN.VLRDESDOB),0),0) FROM TGFFIN FIN WHERE (TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 7 OR TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 1 OR TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 2) AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 1 AND ( FIN.DTVENC >= '01/11/2015'
AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'S' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS PRO_SEGUNDA_S1_E1,
(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 3 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 1 AND (FIN.DTVENC >= '01/11/2015' AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'S' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS PRO_TERCA_S1_E1,
(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 4 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 1 AND (FIN.DTVENC >= '01/11/2015' AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'S' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS PRO_QUARTA_S1_E1,
(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 5 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W') = 1 AND (FIN.DTVENC >= '01/11/2015' AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'S' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS PRO_QUINTA_S1_E1,
(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 6 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 1 AND (FIN.DTVENC >= '01/11/2015' AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'S' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS PRO_SEXTA_S1_E1,


--SEMANA 2
(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE (TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 7 OR TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 1 OR TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 2) AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 2 AND ( FIN.DTVENC >= '01/11/2015'
AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'N' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35) AS SEGUNDA_S2_E1,

(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 3 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 2 AND (FIN.DTVENC >= '01/11/2015' AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'N' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS TERCA_S2_E1,

(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 4 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 2 AND (FIN.DTVENC >= '01/11/2015' AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'N' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS QUARTA_S2_E1,

(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 5 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 2 AND (FIN.DTVENC >= '01/11/2015' AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'N' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS QUINTA_S2_E1,

(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 6 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 2 AND (FIN.DTVENC >= '01/11/2015' AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'N' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS SEXTA_S2_E1,

--PROVISAO SEMANA 2
(SELECT NVL(NVL(SUM(FIN.VLRDESDOB),0),0) FROM TGFFIN FIN WHERE (TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 7 OR TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 1 OR TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 2) AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 2 AND ( FIN.DTVENC >= '01/11/2015'
AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'S' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS PRO_SEGUNDA_S1_E1,
(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 3 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 2 AND (FIN.DTVENC >= '01/11/2015' AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'S' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS PRO_TERCA_S2_E1,
(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 4 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 2 AND (FIN.DTVENC >= '01/11/2015' AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'S' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS PRO_QUARTA_S2_E1,
(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 5 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W') = 2 AND (FIN.DTVENC >= '01/11/2015' AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'S' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS PRO_QUINTA_S2_E1,
(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 6 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 2 AND (FIN.DTVENC >= '01/11/2015' AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'S' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS PRO_SEXTA_S2_E1,




--SEMANA 3
(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE (TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 7 OR TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 1 OR TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 2) AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 3 AND ( FIN.DTVENC >= '01/11/2015'
AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'N' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN2.CODTIPTIT <> 35) AS SEGUNDA_S3_E1,
(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 3 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 3 AND (FIN.DTVENC >= '01/11/2015' AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'N' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS TERCA_S3_E1,
(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 4 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 3 AND (FIN.DTVENC >= '01/11/2015' AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'N' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS QUARTA_S3_E1,
(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 5 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 3 AND (FIN.DTVENC >= '01/11/2015' AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'N' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS QUINTA_S3_E1,
(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 6 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 3 AND (FIN.DTVENC >= '01/11/2015' AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'N' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS SEXTA_S3_E1,
--PROVISAO SEMANA 3
(SELECT NVL(NVL(SUM(FIN.VLRDESDOB),0),0) FROM TGFFIN FIN WHERE (TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 7 OR TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 1 OR TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 2) AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 3 AND ( FIN.DTVENC >= '01/11/2015'
AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'S' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS PRO_SEGUNDA_S1_E1,
(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 3 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 3 AND (FIN.DTVENC >= '01/11/2015' AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'S' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS PRO_TERCA_S3_E1,
(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 4 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 3 AND (FIN.DTVENC >= '01/11/2015' AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'S' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS PRO_QUARTA_S3_E1,
(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 5 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W') = 3 AND (FIN.DTVENC >= '01/11/2015' AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'S' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS PRO_QUINTA_S3_E1,
(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 6 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 3 AND (FIN.DTVENC >= '01/11/2015' AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'S' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS PRO_SEXTA_S3_E1,



--SEMANA 4
(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE (TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 7 OR TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 1 OR TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 2) AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 4 AND ( FIN.DTVENC >= '01/11/2015'
AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'N' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN2.CODTIPTIT <> 35) AS SEGUNDA_S4_E1,
(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 3 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 4 AND (FIN.DTVENC >= '01/11/2015' AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'N' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS TERCA_S4_E1,
(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 4 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 4 AND (FIN.DTVENC >= '01/11/2015' AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'N' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS QUARTA_S4_E1,
(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 5 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 4 AND (FIN.DTVENC >= '01/11/2015' AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'N' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS QUINTA_S4_E1,
(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 6 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 4 AND (FIN.DTVENC >= '01/11/2015' AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'N' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS SEXTA_S4_E1,

--PROVISAO SEMANA 4
(SELECT NVL(NVL(SUM(FIN.VLRDESDOB),0),0) FROM TGFFIN FIN WHERE (TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 7 OR TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 1 OR TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 2) AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 4 AND ( FIN.DTVENC >= '01/11/2015'
AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'S' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS PRO_SEGUNDA_S1_E1,
(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 3 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 4 AND (FIN.DTVENC >= '01/11/2015' AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'S' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS PRO_TERCA_S4_E1,
(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 4 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 4 AND (FIN.DTVENC >= '01/11/2015' AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'S' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS PRO_QUARTA_S4_E1,
(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 5 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W') = 4 AND (FIN.DTVENC >= '01/11/2015' AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'S' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS PRO_QUINTA_S4_E1,
(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 6 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 4 AND (FIN.DTVENC >= '01/11/2015' AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'S' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS PRO_SEXTA_S4_E1,

--SEMANA 5
(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE (TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 7 OR TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 1 OR TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 2) AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 5 AND ( FIN.DTVENC >= '01/11/2015'
AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'N' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN2.CODTIPTIT <> 35) AS SEGUNDA_S5_E1,
(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 3 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 5 AND (FIN.DTVENC >= '01/11/2015' AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'N' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS TERCA_S5_E1,
(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 4 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 5 AND (FIN.DTVENC >= '01/11/2015' AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'N' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS QUARTA_S5_E1,
(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 5 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 5 AND (FIN.DTVENC >= '01/11/2015' AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'N' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS QUINTA_S5_E1,
(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 6 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 5 AND (FIN.DTVENC >= '01/11/2015' AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'N' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS SEXTA_S5_E1,
--PROVISAO SEMANA 5
(SELECT NVL(NVL(SUM(FIN.VLRDESDOB),0),0) FROM TGFFIN FIN WHERE (TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 7 OR TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 1 OR TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 2) AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 5 AND ( FIN.DTVENC >= '01/11/2015'
AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'S' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS PRO_SEGUNDA_S1_E1,
(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 3 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 5 AND (FIN.DTVENC >= '01/11/2015' AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'S' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS PRO_TERCA_S5_E1,
(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 4 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 5 AND (FIN.DTVENC >= '01/11/2015' AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'S' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS PRO_QUARTA_S5_E1,
(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 5 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W') = 5 AND (FIN.DTVENC >= '01/11/2015' AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'S' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS PRO_QUINTA_S5_E1,
(SELECT NVL(SUM(FIN.VLRDESDOB),0) FROM TGFFIN FIN WHERE TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'D') = 6 AND TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'W')= 5 AND (FIN.DTVENC >= '01/11/2015' AND FIN.DTVENC <= '20/11/2015') AND FIN.RECDESP = -1 AND FIN.PROVISAO = 'S' AND FIN.DHBAIXA IS NULL AND FIN.CODEMP = 1 AND TO_CHAR(usf_ultimo_dia_util(FIN2.DTVENC),'MM') = TO_CHAR(usf_ultimo_dia_util(FIN.DTVENC),'MM') AND FIN.CODTIPTIT <> 35 AND FIN.CODTIPOPER IN (200,30)) AS PRO_SEXTA_S5_E1


FROM TGFFIN FIN2


WHERE

FIN2.DTVENC >= '01/11/2015'
AND FIN2.DTVENC <= '20/11/2015'
AND FIN2.RECDESP = -1
AND FIN2.DHBAIXA IS NULL
AND FIN2.CODTIPTIT <> 35
AND FIN2.CODTIPOPER IN (200,30)

ORDER BY SEMANA
Michel Silva

Michel Silva

Responder

Post mais votado

10/11/2015

Post novamente o código com a tag "Inserir Codigo", pois, do modo que está, fica difícil entender o que está acontecendo...

Pela quantidade de DISTINCTS no código, não existe dúvida alguma que a causa da lentidão é a quantidade de subqueries aninhadas.

Sugiro que você faça diferente : para cada subquery crie um tabela temporária e, depois, trate tudo de uma só vez baseado nas temporárias.

Também é possível gerar tudo em uma temporária só, diferenciado por semana, empresa e etc... Nesse caso, continue trabalhando com queries de insert separadas.

Marcos P

Marcos P
Responder

Gostei + 1

Mais Posts

10/11/2015

Jothaz

Post novamente o código com a tag "Inserir Codigo", pois, do modo que está, fica difícil entender o que está acontecendo...

Pela quantidade de DISTINCTS no código, não existe dúvida alguma que a causa da lentidão é a quantidade de subqueries aninhadas.

Sugiro que você faça diferente : para cada subquery crie um tabela temporária e, depois, trate tudo de uma só vez baseado nas temporárias.

Também é possível gerar tudo em uma temporária só, diferenciado por semana, empresa e etc... Nesse caso, continue trabalhando com queries de insert separadas.


Perfeito! Comece seguindo estas dicas para refinar a lógica e DISTINCTS com subqueries é o caminho mais curto para o inferno.
Responder

Gostei + 0

10/11/2015

Michel Silva

Opa, mas tipo, eu não posso criar uma tabela temporária pq esse relatório vai ficar fixo no ERP da empresa, logo, sempre vão tá gerando esse relatório!

Com relação aos DISTINCTS, atrapalha muito na performance?
Responder

Gostei + 0

10/11/2015

Marcos P

Tabela temporária, como o próprio nome já diz, é um objeto que existe apenas na sessão que executa a query.

Portanto, o fato de existir uma ( ou mais ) temporária em cada consulta, não é restrição alguma.

Quanto à performance do DISTINCT + Subquery, sua consulta é um belo exemplo de como não fazer as coisas !
Responder

Gostei + 0

10/11/2015

Michel Silva

E como seria uma bom exemplo? Não consegui pegar a sua lógica! Se tivesse como me mostrar um esboço só pra eu pegar a ideia e depois continuar sozinho, quebraria um galhão!
Responder

Gostei + 0

11/11/2015

Marcos P

Coloca teu Skype ou Gtalk, aqui...

Quando eu tiver um tempo, te chamo...
Responder

Gostei + 0

12/11/2015

Michel Silva

michel.silva@sankhya.com.br Skype!! =))) Valeu mesmo!
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar