select C.num_buy, C.cod_fact, f.nam_fact, C.cod_paym, D.content ,
(select t.cod_paym oldpaym
from (select A.NUM_BUY, A.COD_FACT, A.COD_PAYM, A.DAT_BUY
FROM BUYM A
LEFT JOIN (SELECT COD_FACT,
MAX(DAT_BUY) DAT_BUY,
max(num_buy) num_buy
FROM BUYM
where dat_buy <=
to_char(last_day(add_months(sysdate, -1)),
'yyyyMMdd')
GROUP BY COD_FACT) B ON B.DAT_BUY = A.DAT_BUY
AND B.COD_FACT = A.COD_FACT
WHERE B.DAT_BUY = A.DAT_BUY
AND B.COD_FACT = A.COD_FACT
and b.num_buy = a.num_buy) t ,buym c ,codd e
where c.cod_fact = t.cod_fact
and c.dat_buy > to_char(last_day(add_months(sysdate, -1)), 'yyyyMMdd')
and c.cod_paym<>t.cod_paym
and t.cod_paym = e.code)oldpaym ,
(select e.content
from (select A.NUM_BUY, A.COD_FACT, A.COD_PAYM, A.DAT_BUY
FROM BUYM A
LEFT JOIN (SELECT COD_FACT,
MAX(DAT_BUY) DAT_BUY,
max(num_buy) num_buy
FROM BUYM
where dat_buy <=
to_char(last_day(add_months(sysdate, -1)),
'yyyyMMdd')
GROUP BY COD_FACT) B ON B.DAT_BUY = A.DAT_BUY
AND B.COD_FACT = A.COD_FACT
WHERE B.DAT_BUY = A.DAT_BUY
AND B.COD_FACT = A.COD_FACT
and b.num_buy = a.num_buy) t ,buym c ,codd e
where c.cod_fact = t.cod_fact
and c.dat_buy > to_char(last_day(add_months(sysdate, -1)), 'yyyyMMdd')
and c.cod_paym<>t.cod_paym
and t.cod_paym = e.code) oldcontent
from buym c, CODD D, fact f
where c.cod_paym <>
(select cod_paym
from (select A.NUM_BUY, A.COD_FACT, A.COD_PAYM, A.DAT_BUY
FROM BUYM A
LEFT JOIN (SELECT COD_FACT,
MAX(DAT_BUY) DAT_BUY,
max(num_buy) num_buy
FROM BUYM
where dat_buy <=
to_char(last_day(add_months(sysdate, -1)),
'yyyyMMdd')
GROUP BY COD_FACT) B ON B.DAT_BUY = A.DAT_BUY
AND B.COD_FACT = A.COD_FACT
WHERE B.DAT_BUY = A.DAT_BUY
AND B.COD_FACT = A.COD_FACT
and b.num_buy = a.num_buy) t
where c.cod_fact = t.cod_fact)
and c.dat_buy > to_char(last_day(add_months(sysdate, -1)), 'yyyyMMdd')
and C.cod_paym = d.code
and c.cod_fact = f.cod_fact;