日期:2014-05-18  浏览次数:20585 次

怎样筛选主表中某字段的值不等于子表中某字段值的和的记录?
如题,这个存储过程如何写?
既:
table   a:    
ID     Name     Num
1         karl     50
2         Marry   30
3         Bush       55  

table   b:
b_ID     a_ID     Item       ItemNum
001       1           b_1           10
002       1           b_2           20
003       2           b_1           17
004       2           b_3           13
005       3           b_2           30

其中表   b通过字段a_ID   与表   a的ID相关联。
请问,如果我要查询a表中Num字段的值不等于   b表中ItemNum值的和   的记录该怎么弄?既必须得到如下结果:
ID     Name   Num  
1       karl   50  
3       Bush     55


在线等待。。。。。

------解决方案--------------------
select a.* from a,(select a_id,sum(itemNum) ItemNum from b group by a_id)b where a.id=b.a_id and num <> itemnum
------解决方案--------------------
select * from a where num <> (select sum(ItemNum) from b where a_ID=a.ID)
------解决方案--------------------



select * from ta a
left join
(
select a_id,sum(itemnum)as itemnum from tb group by a_id
)b on a.id=b.a_id
where a.num <> b.itemnum