3个表
用户表 user
id    username
1     管理员
2     中国上海出库表 rkb
user_id   money
1          1000
1          2000入库表 ckb
user_id    money
1         10000
1          5000现在需要一个SQL,能得到结余,sum(rkb.money)-sum(ckb.money) 即把当前该用户的所有入库-该用户的所有出库就可以了,如果是没数据的就为0(如用户2)我用 select sum(xxx)-sum(xx) from user,rkb,ckb where rkb.user_id=ckb.user_id and user.id=ckb.user_id group by user.id结果不对,而且对于用户2,在出库和入库都没数据的,也不能得到0,现在要1个SQL语句,能得到结果吗??

解决方案 »

  1.   

    select [user].id,[user].username,sum(isnull(rkb.money,0))-sum(isnull(ckb.money,0)) 
    from [user],rkb,ckb 
    where [user].id*=rkb.user_id and [user].id*=ckb.user_id 
    group by [user].id,[user].username
      

  2.   

    access的数据库可以用吗?[user].id*<----我用这个*就提示错误,还有isnull函数说参数不对??怎么回事
      

  3.   

    不知道你用的什么数据库,可以写一个存储过程放在数据库中,就比较容易了,用多个sql语句也没关系。
      

  4.   

    这样也很好,做个简单视图数据就到一起了
    Create View V_CRKB
    as
    select user_id,money
    from rkb
    union all
    select user_id,money
    from ckb这个视图V_CRKB就是合并的数据,用法和基础表一样