解释:我想把每个用户的分数在原有的基础上加上它的ID 数,UserTicket是分数字段,表是Users假设UserTicket都是10,我想执行后的效果是,每个用户的UserTicket数都是UserTicket加它本身的ID值update Users set UserTicket=UserTicket+自身ID数where UserID in (select UserID from Bid where ProID=3 group by UserID)1.select UserID from Bid where ProID=3 group by UserID 查出UserID是1,2,3,4

解决方案 »

  1.   


    update Users set UserTicket=UserTicket+Cast(ID as varchar(50))where UserID in (select UserID from Bid where ProID=3 group by UserID) 
      

  2.   

    update Users set UserTicket=UserTicket+Cast(ID as int)where UserID in (select UserID from Bid where ProID=3 group by UserID) 
      

  3.   

    update [Users] set UserTicket=UserTicket+自身ID数
    不行吗?你具体是什么问题?
      

  4.   

    update Users set UserTicket=UserTicket+自身ID数 where UserID in (select UserID from Bid where ProID=3 group by UserID) 
    有什么问题吗
      

  5.   

    如果要换成字符串可以用ltrim(自身ID数)
    如果换成数字就用cast(自身ID数 as int)
      

  6.   


    update Users set UserTicket=UserTicket+Cast(ID as int)where UserID in (select UserID from Bid where ProID=3 group by UserID) 
      

  7.   

    update Users set UserTicket=UserTicket+CONVERT(INT,自身ID数 )where UserID in (select UserID from Bid where ProID=3 group by UserID) 如果ID不是整形,应该也会自动转换的,强制转换下
      

  8.   

    update Users set UserTicket=UserTicket+自身ID数 where UserID in (select UserID from Bid where ProID=3 group by UserID) 
    这句话返回的是多个值,我怎么确定自身ID是多少
      

  9.   

    你是问什么?问数字与字符栏位相加的结果?写几个测试的试一下就知道了select 1 + 2 as result;select 1 + '2' as result;select 1 + 'a' as result;select '1' + 2 as result;select '1' + 'a' as result;select '1' + '2' as result;select 1 + cast ('2' as int) as result;select '1' + cast ('2' as int) as result;select '1' + cast (2 as char(1)) as result;执行一下就知道数据库是怎么对待数字与字符的操作了
      

  10.   

    这句话是批量更新,where后只是条件,表示要更新哪些记录,至于每一条记录,本身就是取本记录的相应列啊
      

  11.   

    update Users set UserTicket=UserTicket+自身ID数 from tb1 --假设从tb1中取,关联字段为id1where users.id1=tb1.id1 and UserID in (select UserID from Bid where ProID=3 group by UserID)
      

  12.   

    update Users set UserTicket=UserTicket+UserID where UserID in (select UserID from Bid where ProID=3 group by UserID) 
      

  13.   


    update Users set UserTicket=UserTicket+UserID where UserID in (select UserID from Bid where ProID=3 group by UserID) 
      

  14.   

    我刚试了:fwacky,allen_sz,xiequan2 说的是可以的我现在想改一下update Users set UserTicket=UserTicket+(1) where UserID in (select UserID from Bid where ProID=3 group by UserID) 
    (1)的位置不是它本身ID,而是它在另一个表里出现的次数
    (select count(UserID) as count_Bid from Bid where ProID=3 and UserID=UserID)
    单纯这一句话查询结果是2,3,执行上面的语句后应该是12,13
    但执行后确是15就是 and UserID=UserID这句话没用请帮帮忙看看
      

  15.   

    update Users set UserTicket=
    UserTicket+(SELECT COUNT(*) FROM  Bid B WHERE B.USERID=U.USERID) 
    FROM USERS U
    where UserID in (select UserID from Bid where ProID=3 group by UserID)
      

  16.   

    update Users set UserTicket=
    UserTicket+(SELECT COUNT(*) FROM  Bid B WHERE B.USERID=U.USERID) 
    FROM USERS U JOIN BID B ON U.USERID=B.USERID
    AND U.UserID in (select UserID from Bid where ProID=3 group by UserID)这样试试,头晕晕的,可能有简单的写法
      

  17.   

    问题解决,稍后结账
    update Users set UserTicket=UserTicket+(select count(UserID) as count_Bid from Bid b where b.UserID=u.UserID and ProID=3)
    from Users u where UserID in (select UserID from Bid where ProID=3 group by UserID)我不明白这句话
    (select count(UserID) as count_Bid from Bid b where b.UserID=u.UserID and ProID=3)
    from Users uSQL77能解释下吗?