select sum(f1.TAKEUP_CREDIT_AMT) from A f1,D t
where f1.data_dt=t.date_key
select sum(f1.CREDIT_AMT) from B f1,D t
where f1.data_dt=t.date_key 我现在想通过一条SQL获得这2个值得差值请高人们指点......
where f1.data_dt=t.date_key
select sum(f1.CREDIT_AMT) from B f1,D t
where f1.data_dt=t.date_key 我现在想通过一条SQL获得这2个值得差值请高人们指点......
where f1.data_dt=t.date_key )-
(select sum(f1.CREDIT_AMT) from B f1,D t
where f1.data_dt=t.date_key) 差值
from dual
FROM A f1,B f2,D t
WHERE t.date_key=f1.data_dt(+)
AND t.date_key=f2.data_dt(+)
select sum(f1.TAKEUP_CREDIT_AMT-f1.CREDIT_AMT) as sum1
from A f1,D t
where f1.data_dt=t.date_key;-- 方法二:先对两个字段分别求和,再相减!(即:先累加,再相减)
select sum(f1.TAKEUP_CREDIT_AMT)-sum(f1.CREDIT_AMT) as sum2
from A f1,D t
where f1.data_dt=t.date_key;
where f1.data_dt=t.date_key
slect sum(f1.TAKEUP_CREDIT_AMT)-sum(f2.CREDIT_AMT) from A f1
left join D t on f1.data_dt=t.data_key
left join B f2 on f2.data_dt=t.data-key
nvl(a.TAKEUP_CREDIT_AMT,0) as TAKEUP_CREDIT_AMT,
nvl(b.CREDIT_AMT,0) as CREDIT_AMT
from d left join a on a.date_dt=d.date_key
left join b on b.date_dt=d.date_key )
select sum(c.TAKEUP_CREDIT_AMT-c.CREDIT_AMT) as sum1
from c;with c as (select d.date_key,
nvl(a.TAKEUP_CREDIT_AMT,0) as TAKEUP_CREDIT_AMT,
nvl(b.CREDIT_AMT,0) as CREDIT_AMT
from d left join a on a.date_dt=d.date_key
left join b on b.date_dt=d.date_key )
select sum(c.TAKEUP_CREDIT_AMT)-sum(c.CREDIT_AMT) as sum2
from c;