試下這樣會不會快一點.. select a. *, m.amount from tableA a, ( select b.fieldD, sum(c.total_amount) amount from tableA b, tableB c where b.fieldId = c.fieldId and b.fieldA in ('AA', 'BB', 'CC', 'DD', 'EE', 'FF') and b.fieldC = 100 and
group by b.fieldD ) m where a.fieldD = m.fieldD and a.fieldC = 100 and a.fieldA = 'GG'
select a. *, m.amount
from tableA a,
(
select b.fieldD, sum(c.total_amount) amount
from tableA b, tableB c
where b.fieldId = c.fieldId
and b.fieldA in ('AA', 'BB', 'CC', 'DD', 'EE', 'FF')
and b.fieldC = 100 and
group by b.fieldD
) m
where
a.fieldD = m.fieldD
and a.fieldC = 100
and a.fieldA = 'GG'