我喜欢加入3个表来获取数据: table1中的必填字段 来自table2的record_count 表3的总和(金额)
我使用以下查询:
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;
注意:它的工作正常(如果a.Bcde='TVM'
),而不是任何其他branch_code“Bcde
”
TVM的记录很少(只有40条记录)
但如果我给(where a.Bcde='CBE'
)它不起作用 - 花费很长时间并给予康恩。 ERR。
为了您的信息,它有更多的记录:
6000+ records in table1
50000+ records in table2
100000+ records in table3
如何处理这种情况? 期待您的宝贵回复。
的问候, 森萨。
答案 0 :(得分: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? p>
如果有人知道请与我分享。
期待您在这方面的宝贵回复。