我写了以下一个语句,可是总是报错,就是实现修改一个表的一个列的数据,用这个表的数据减去另一个表的数据再保存回原表,语句如下:
update depotnum set depotnum.number=(depotnum.number-outdepot.number) where depotnum.productser in (select productser from outdepot)
第一次用sql语句,查书也没有看出为什么。它总是向我要参数的值,为什么?

解决方案 »

  1.   

    update depotnum 
    set number=a.number-b.number
    from depotnum a ,outdepot b
    where a.productser in (select productser from outdepot)
      

  2.   

    depotnum 与 outdepot应该有关联才行呀,比如
    update depotnum 
    set number=a.number-b.number
    from depotnum a ,outdepot b
    where a.productser=b.productser
      

  3.   

    第一个错了
    用这个:
    update depotnum 
    set number=a.number-b.number
    from depotnum a ,outdepot b
    where a.productser=b.productser
      

  4.   

    create table a(
    number int
    )
    create table b(
    number int
    )insert a(number)values(1)
    insert b(number)values(1)update a
    set number=number+(select number from b)
      

  5.   

    lyjlee:
    错误提示“操作必须使用一个可更新的查询”,还是没有答案,唉!!!
      

  6.   

    create table a(
    id int,
    number int
    )
    create table b(
    id int,
    number int
    )insert a(id,number)values(1,100)
    insert b(id,number)values(1,200)update a
    set number=number+(select number from b where id=1)
    where id=1
      

  7.   

    lyjlee:
    还是同样的错误提示,我用的是access。
      

  8.   

    建议使用程序进行操作'工程-〉引用 Microsoft Active Data Objects 2.x(x表示版本号)
    Dim cn As New ADODB.Connection
    Dim rs As New Recordset
    cn.ConnectionString = "Provider=sqloledb;Data Source=127.0.0.1;Initial Catalog=pubs;User Id=sa;Password=lyjlee;"
    cn.Openrs1.open "select * from a",cn,adOpenKeyset, adLockOptimistic
    do while not rs1.eof 
     rs2.open "select number from b where id="&rs1("id"),cn,adOpenKeyset, adLockOptimistic
     if not rs2.eof then
      cn.execute("update a set number=number+"&rs2("number"))
     end if
     rs1.movenext
    loop
      

  9.   

    '工程-〉引用 Microsoft Active Data Objects 2.x(x表示版本号)
    Dim cn As New ADODB.Connection
    Dim rs As New Recordset该为:
    Dim rs1,rs2 As New Recordset
      

  10.   

    cn.ConnectionString = "Provider=sqloledb;Data Source=127.0.0.1;Initial Catalog=pubs;User Id=sa;Password=lyjlee;"该为:
    cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & app.path & "\db1.mdb"