为什么
update jingzi set jingzi.zchanliang=isnull((select daidong from table1 where id1=table1.id1-1),0) from table1 where
jingzi.id1=table1.id1
结果总是不对
我变成
update jingzi set jingzi.zchanliang=isnull((select daidong from table1 where id1=TEP.id1-1),0) from table1 AS TEP where
jingzi.id1=table1.id1
结果就对了 为什么啊

解决方案 »

  1.   

    select daidong from table1 where id1=table1.id1-1-------------
    这里id1=table1.id1-1,后边这个id指代不明,table1到第代表这里的呢,还是外边那个呢,
    所以需要在外边的table1取别名来以示区别
      

  2.   

    那别名和table1不是一个吗 他们怎么区别啊
      

  3.   

    你有两个‘from table1’,
    sqlserver不知道‘id1=table1.id1-1’中的‘id1’到底属于哪个。
    所以需要给其中一个table1取别名以示区别
      

  4.   

    ‘id1=table1.id1-1’
    人家凭什么知道这个table1指的是外边from table1那个table1阿,
    人家还以为是里面这个表自己跟自己关联呢。:)
      

  5.   

    两个‘from table1’指的是同一个表 别名和table1指的也是同一个表
    这也没有区分开啊
      

  6.   

    在sql执行的时候,虽然他们的内容一样,
    其实上是当作两张表来运行检索的,明白么
      

  7.   

    rookie_one 说的对啊