解释:我想把每个用户的分数在原有的基础上加上它的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
update Users set UserTicket=UserTicket+Cast(ID as varchar(50))where UserID in (select UserID from Bid where ProID=3 group by UserID)
不行吗?你具体是什么问题?
有什么问题吗
如果换成数字就用cast(自身ID数 as int)
update Users set UserTicket=UserTicket+Cast(ID as int)where UserID in (select UserID from Bid where ProID=3 group by UserID)
这句话返回的是多个值,我怎么确定自身ID是多少
update Users set UserTicket=UserTicket+UserID 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这句话没用请帮帮忙看看
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)
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)这样试试,头晕晕的,可能有简单的写法
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能解释下吗?