SELECT A.编号,A.姓名,A.帐号,
(select NVL(SUM(B.金额),0) from b where A.编号=B.编号
and B.日期>=TO_DATE('20030101','YYYYMMDD')
AND B.日期<=TO_DATE('20030201','YYYYMMDD'))
FROM A
把对b表的筛选条件,放到子查询里。
select A.编号,A.姓名,A.帐号,NVL(SUM(B.金额),0)
from A aa,
(select *
from B bb
where bb.日期>=TO_DATE('20030101','YYYYMMDD') AND bb.日期<=TO_DATE ('20030201','YYYYMMDD')
) bb
where aa.编号=bb.编号(+)
group by A.编号,A.姓名,A.帐号
还有一问,如果表B中还有一个字段B.日期,
select A.编号,A.姓名,A.帐号,NVL(SUM(B.金额),0)
from A as aa LEFT JOIN B as bb on aa.编号=bb.编号
where bb.日期>=TO_DATE('20030101','YYYYMMDD')
AND bb.日期<=TO_DATE('20030201','YYYYMMDD')
group by A.编号,A.姓名,A.帐号