inner join连接表问题?
在一个数据库中有两个表A(p_id,qty)B(xh,p_id,quantity)其中在A中有数据:
p_id qty
001 1500
002 1300
.....
B表中:
xh p_id quantity
1 001 1000
2 001 500
3 002 1000
4 002 300
............
我用内联时出错:
select b.p_id, '数量1 '=sum(B.quantity), '数量2 '=sum(A.qty)
from B inner join A on b.p_id = a.p_id
group by b.p_id
得到数据如下:
p_id 数量2 数量1
001 3000 1500
002 2600 1300
.......
好像数量2就是统计A表的数量时都扩大了一倍,我想得到的是下面的数据才对
p_id 数量2 数量1
001 1500 1500
002 1300 1300
(注:在A表中001的只有1500数据,用单表查时就是1500)
请教高手sql语句该怎么写?
------解决方案--------------------select *,(select sum(quantity) from 表 where a.p_id=p_id )from A a
------解决方案--------------------如果A表的p_id是唯一的,则把数量2的SUM()改成MAX():
select b.p_id, '数量1 '=sum(B.quantity), '数量2 '=MAX(A.qty)
from B inner join A on b.p_id = a.p_id
group by b.p_id
------解决方案--------------------select b.p_id, '数量1 '=sum(B.quantity), '数量2 '=sum(A.qty)
from (select p_id ,sum(quantity) quantity from b group by p_id )b inner join A on b.p_id = a.p_id
group by b.p_id
------解决方案--------------------sum(A.qty)把你表A中的qty和B中的quantity都加一起了