我现在有三张表a,b,c.其中a是主表,内联b,c.
现在的问题是b表中有符合条件的记录5条,c表中有符合条件的记录2条,当连接了a表后,查询结果集变为了10条,而这时如果要对b,c表中的数据求和就会产生错误。请问如何解决。小弟谢过先!!
现在的问题是b表中有符合条件的记录5条,c表中有符合条件的记录2条,当连接了a表后,查询结果集变为了10条,而这时如果要对b,c表中的数据求和就会产生错误。请问如何解决。小弟谢过先!!
解决方案 »
- 关于sqlite数据库连接查询问题
- merge into 求助
- 一个比较麻烦的oracle的查询语句
- oracle9i与10g对于group by的自动排序
- oracle过程中执行动态的Sql语句Sql_insert:='insert into '|| srctable || '('||fielda,filedb||')'|| ' values( '||a,b ||')',有具体说
- 关于子查询中使用order by 的问题 急急急!
- 存储过程显示异常
- 在VC中怎么调用oracle中存储过程,需不需要先经过proc预编译??
- 关于oralce9i下的pro*cobol编程(大侠帮忙!)
- 菜鸟发问,有关SQL*PLUS的初级问题
- oracle入门问题
- oracle10g建立表空间、数据库、用户的问题
用inner join 试试
1 1 10 1 5
2 1 15 1 6
1 20 2 7
1 25 3 5
1 30
2 20现在数据是这样的
如果用a inner join b a.id=b.id inner join c a.id=d.id and a.id=1 就会得到10条记录
这样用sum(b.money)就会得到10条记录的总和,就是多了一倍,而sum(c.count)就多了5倍。
我现在想得到b里面 id=1的money总和,c里id=1里的总和。不知道现在这样解释清不清楚了,请大虾们指教!
。。怎么还有个d.id?
select a.id,sum(b.money),sum(c.count) from a inner join b on a.id =b.id inner join c on a.id=c.id group by a.id
WHERE B.BID=A.AID AND C.CID=A.AID AND A.AID=1
WHERE B.BID=A.AID AND A.AID=1
UNION
SELECT SUM(C.COUNT),A.AID FROM TABLEA A,TABLEC C
WHERE C.CID=A.AID AND A.AID=1
你可以先对b,c分别group by求和,a 也group by,然后再是三表相连接.
select sum(money ) from(select distinct b.* from a inner join b on a.id =b.id inner join c on a.id = c.id)
where id = 1
有问题再说
select sum(money ) from(select distinct b.* from a inner join b on a.id =b.id inner join c on a.id = c.id)
where id = 1
谢谢各位的指教!