infomrix 两张表关联求和问题,请大家看看
--1-- select sum(a.charge) from event_zxg_30_590810 a;
--2-- select sum(b.charge) from event_zxg_fee_30_590810 b;
a表 主键 event_inst_id
b表 event_inst_id 是 a标的外键
a表与b表关系是一对多
业务上sum(a.charge)=sum(b.charge) ,也就是a表里的charge 是总帐,b表里的charge 是分账 总帐=分账之和
问题:
--3-- select sum(b.charge) from event_zxg_30_590810 a,event_zxg_fee_30_590810 b where a.event_inst_id=b.event_inst_id and a.start_time>='208-10-15 00:00:00' and a.start_time<='2008-10-15 23:59:59';
第3条sql输出的sum(b.charge)和第1、2条sql输出的sum值一致吗?
我的结果将在结贴时给出,请大家分析。
[解决办法]
坦白说,如果你不是在搞脑筋结转弯的话应该是一样的。
如果你SQL 1和SQL 2抓出来的值相等,那么SQL 3 去掉时间限制,应该会和SQL 1&SQL 2的值相等
假如不相等,可能你的表就有问题了
或许有我不知道的原因,不过可以用group by event_inst_id 来看一下都抓了哪些event_inst_id ,可以找到造成不等的原因。