Hi I have got these three views and a select on them.
I was wondering if it is possible to use only a select to accomplish the same result.
CREATE OR REPLACE VIEW CDWDBA.VIDDS_AUM
AS
select
a.cliente_id,a.prodotto_id,a.societa_id, TRUNC(d.data_validita,'mm') data_validita,
sum(d.valore_aum)aum
from mvdds_CLIENTE a, taods_aum d
where a.contratto_id=d.contratto_id
and a.societa_id=d.societa_id
and d.tipo_aum_id ='MEN'
group by a.cliente_id,a.prodotto_id,a.societa_id, TRUNC(d.data_validita,'mm');
CREATE OR REPLACE VIEW CDWDBA.VIDDS_COMMISSIONE
AS
select
a.cliente_id,a.prodotto_id,a.societa_id, TRUNC(d.data_validita,'mm') data_validita,
sum(t.commissione_CLIENTE)commissioni
from mvdds_CLIENTE a,taods_commissione t , taods_aum d
where a.contratto_id=t.contratto_id
and a.societa_id=t.societa_id
and a.contratto_id=d.contratto_id
and a.societa_id=d.societa_id
AND t.TIPO_PROVVIGIONE_ID IN ('R','S','G')
and t.data_competenza >= ADD_MONTHS (TRUNC(d.data_validita,'mm'),-11)
group by a.cliente_id,a.prodotto_id,a.societa_id , TRUNC(d.data_validita,'mm');
CREATE OR REPLACE VIEW CDWDBA.VIDDS_RACCOLTA_NETTA
AS
select
a.cliente_id,a.prodotto_id,a.societa_id, TRUNC(d.data_validita,'mm') data_validita,
sum(t.importo) raccolta
from mvdds_CLIENTE a,taods_raccolta_netta t , taods_aum d
where a.contratto_id=t.contratto_id
and a.societa_id=t.societa_id
and a.contratto_id=d.contratto_id
and a.societa_id=d.societa_id
and t.data_operazione >= ADD_MONTHS (TRUNC(d.data_validita,'mm'),-11)
group by a.cliente_id,a.prodotto_id,a.societa_id, TRUNC(d.data_validita,'mm');
And the select that last for two hours is:
select
a.data_validita data_caricamento,
to_char(a.data_validita,'MON/YYYY') mese,
a.cliente_id,
a.prodotto_id,
a.societa_id,
a.aum,
nvl(b.raccolta,0) raccolta,
nvl(c.commissioni,0) commissioni
from vidds_aum a,
vidds_raccolta_netta b,
vidds_commissione c
where a.data_validita = b.data_validita(+)
and a.cliente_id = b.cliente_id(+)
and a.prodotto_id = b.prodotto_id(+)
and a.societa_id = b.societa_id (+)
and a.data_validita = c.data_validita(+)
and a.cliente_id = c.cliente_id(+)
and a.prodotto_id = c.prodotto_id(+)
and a.societa_id = c.societa_id (+)
Please help me
I was wondering if it is possible to use only a select to accomplish the same result.
CREATE OR REPLACE VIEW CDWDBA.VIDDS_AUM
AS
select
a.cliente_id,a.prodotto_id,a.societa_id, TRUNC(d.data_validita,'mm') data_validita,
sum(d.valore_aum)aum
from mvdds_CLIENTE a, taods_aum d
where a.contratto_id=d.contratto_id
and a.societa_id=d.societa_id
and d.tipo_aum_id ='MEN'
group by a.cliente_id,a.prodotto_id,a.societa_id, TRUNC(d.data_validita,'mm');
CREATE OR REPLACE VIEW CDWDBA.VIDDS_COMMISSIONE
AS
select
a.cliente_id,a.prodotto_id,a.societa_id, TRUNC(d.data_validita,'mm') data_validita,
sum(t.commissione_CLIENTE)commissioni
from mvdds_CLIENTE a,taods_commissione t , taods_aum d
where a.contratto_id=t.contratto_id
and a.societa_id=t.societa_id
and a.contratto_id=d.contratto_id
and a.societa_id=d.societa_id
AND t.TIPO_PROVVIGIONE_ID IN ('R','S','G')
and t.data_competenza >= ADD_MONTHS (TRUNC(d.data_validita,'mm'),-11)
group by a.cliente_id,a.prodotto_id,a.societa_id , TRUNC(d.data_validita,'mm');
CREATE OR REPLACE VIEW CDWDBA.VIDDS_RACCOLTA_NETTA
AS
select
a.cliente_id,a.prodotto_id,a.societa_id, TRUNC(d.data_validita,'mm') data_validita,
sum(t.importo) raccolta
from mvdds_CLIENTE a,taods_raccolta_netta t , taods_aum d
where a.contratto_id=t.contratto_id
and a.societa_id=t.societa_id
and a.contratto_id=d.contratto_id
and a.societa_id=d.societa_id
and t.data_operazione >= ADD_MONTHS (TRUNC(d.data_validita,'mm'),-11)
group by a.cliente_id,a.prodotto_id,a.societa_id, TRUNC(d.data_validita,'mm');
And the select that last for two hours is:
select
a.data_validita data_caricamento,
to_char(a.data_validita,'MON/YYYY') mese,
a.cliente_id,
a.prodotto_id,
a.societa_id,
a.aum,
nvl(b.raccolta,0) raccolta,
nvl(c.commissioni,0) commissioni
from vidds_aum a,
vidds_raccolta_netta b,
vidds_commissione c
where a.data_validita = b.data_validita(+)
and a.cliente_id = b.cliente_id(+)
and a.prodotto_id = b.prodotto_id(+)
and a.societa_id = b.societa_id (+)
and a.data_validita = c.data_validita(+)
and a.cliente_id = c.cliente_id(+)
and a.prodotto_id = c.prodotto_id(+)
and a.societa_id = c.societa_id (+)
Please help me