select t1.id,t1.value-isnull(t2.value,0)-isnull(t3.value,0) from t1
left join t2 on t1.id=t2.id
left join t3 on t1.id=t3.id

解决方案 »

  1.   

    select t1.id,t1.value-isnull(t2.value,0)-isnull(t3.value,0) value from t1
    left join t2 on t1.id=t2.id
    left join t3 on t1.id=t3.id
      

  2.   

    select id,sum(value) from (
    select id,value from t1
    union all
    select id,-value from t2
    union all
    select id,-value from t3) tem group by id
      

  3.   

    select t1.id,t1.value-isnull(t2.value,0)-isnull(t3.value,0) as value 
    from t1
    left join t2 on t1.id=t2.id
    left join t3 on t1.id=t3.id
      

  4.   

    select isnull(isnull(t1.id,t2.id),t3.id) id,isnull(t1.value,0)-isnull(t2.value,0)-isnull(t3.value,0) value from t1
    full join t2 on t1.id=t2.id
    full join t3 on t1.id=t3.id这两个都可以应付id只存在与任何一个表中的情况。
      

  5.   

    各位DX,在提交新记录到远程SQL SERVER时(通过表单提交,非SQL语句),提示出错Unable to start a nested transaction for OLE DB provider 'SQLOLEDB'.  A nested transaction was required because the XACT_ABORT option was set to OFF. (SQL Server 7395),如何解决?谢谢
      

  6.   

    多谢各位!
    我现在没有sqlserver,在access2000试了试
    access2000似乎不可以用2个left join?access不应该这么傻吧?
    而且access必须写成iif(isnull(的形式
    那不是不能和sqlserver混用了?我这个程序有2个数据库,一个是sqlserver,一个是access,怎么办?
      

  7.   

    我只left join t2 的时候,由于t2没有id为2,3的纪录,这样查询后,id为2,3的纪录value是null。怎么办
    -----------------------------------------------------------------------------------
    既然不需要null结果,就不应该使用left join,应该用inner join。
      

  8.   

    我只left join t2 的时候,由于t2没有id为2,3的纪录,这样查询后,id为2,3的纪录value是null。怎么办
    -----------------------------------------------------------------------------------
    既然不需要null结果,就不应该使用left join,应该用inner join。