冲着楼主的头像,我猜测了下具体的逻辑,试试看
update a
set a.hcount = isnull((select count(1) from order b where a.num between b.begintime and b.endtime),0)
from info a

解决方案 »

  1.   

    WITH t AS (
        SELECT i.num,
               COUNT(o.beginTime) HCount
          FROM info i
     LEFT JOIN [order] o
            ON i.num BETWEEN o.beginTime AND o.endTime
      GROUP BY i.num
    )
    UPDATE info
       SET HCount = t.HCount
      FROM info, t
     WHERE info.num = t.num
      

  2.   

    原来一个好头像那么重要,下班了,明天再测试一下我主要是不懂 一张表根据另一张表修改数据....按照这样写得 那a.hcount不是都是一样了?(我自己想的)这个 a表 不用写 where的吗 ,我就是这里不会搞
    假如 isnull((select count(1) from order b where a.num between b.begintime and b.endtime),0) 的结果是10
    那是不是相当于
    update a set a.hcount =10
    from info a ?
    那这样 info 表 所有hcount 不都等于10了??
      

  3.   

    每一行都有自己的 a.num ,所以不会每行都一样的。自己试试,慢慢想想,会明白的