我在存储过程中建立一个临时表 #T(UserId,CountItem)
  在这个#T中字段UserID字段值已经存在了,我准备向这个临时表中批量插入字段CountItem的值,其中,我可以通过
Select A.UserID,Count(B.Id) as CoutnItem from TbA A,tbb B
where XXXXXXXX
group by A.userId
获得CoutnItem的值,怎样一次性将这个countItem更新到临时表中相应的地方呢?

解决方案 »

  1.   


    ;with cte as (
    Select A.UserID,Count(B.Id) as CountItem from TbA A,tbb B
    where XXXXXXXX
    group by A.userId
    )
    Update#t 
    Set CountItem=cte.CountItem
    from cte 
    where #t.userId=cte. userId
      

  2.   

    试试这样,没测试:
    update #T set countItem =(Select Count(B.Id)  from TbA A,tbb B
    where XXXXXXXX  --如果CoutnItem和这个搜索有关系,这里where条件加上,如果没关系,可以这样写,也可以外边定义一个变量
    group by A.userId) 
      

  3.   

    比如有关系
    update #T set countItem =(Select Count(B.Id)  from TbA A,tbb B
    where #T.UserId = A.userId  
    group by A.userId) 没关系declare @i int = (Select Count(B.Id)  from TbA A,tbb B
    where XXXXXXXX 
    group by A.userId)
    update #T set countItem =@i
      

  4.   

    用update语句,条件关联就行了
      

  5.   

    sql语句太灵活,功能太强大了。遗憾的是我始终把sql掌握不好,郁闷