0

我喜欢加入 3 个表来获取数据:table1 中的必填字段和 table2 中的 record_count 以及 table3 中的 sum(amount)

我正在使用以下查询:

select a.cde,a.name,count(b.TransID) as t_cnt, 
       sum(c.Amt) as c_sumofamt 
from table1 a 
inner join table2 b 
    on a.cde=b.cde 
inner join table3 c 
    on a.cde=c.cde 
where a.Bcde='TVM' GROUP BY a.cde;

注意:如果 (where a.Bcde='TVM') 但不能与任何其他 branch_code " Bcde"一起工作,它可以正常工作

TVM 的记录很少(只有 40 条记录)

但是如果我给(where a.Bcde='CBE')它不起作用 - 需要很长时间并给出conn。呃。

供您参考,它有更多记录:

6000+ records in table1
50000+ records in table2
100000+ records in table3

如何处理这种情况?期待您的宝贵答复。

问候,森萨。

4

1 回答 1

0

首先,我要感谢大家在这篇文章中花费了宝贵的时间。

我在另一个论坛的人的帮助下得到了解决方案。

解决方案是:

select a.cde,a.name,count(b.TransID) as t_cnt, 
       sum(c.Amt) as c_sumofamt 
from table1 a 
inner join table2 b 
    on a.cde=b.cde 
inner join table3 c 
    on 

b.cde=c.cde

where a.Bcde='TVM' GROUP BY a.cde;

注意第二个内部连接。他们建议我从第二张桌子加入到第三张桌子 - 现在它工作正常。

但是我不知道如果我使用: a.cbe=c.cde 而不是 b.cde=c.cde 有什么区别?

如果有人知道,请与我分享。

期待您在这方面的宝贵答复。

于 2012-04-21T08:33:09.580 回答