select a.id,id个数=count(b.id)
from 表1 a left join 表2 b on charindex(','+cast(a.id as varchar)+',',','+b.form1_id+',')>0
group by a.id

解决方案 »

  1.   

    select id,count(*)
    from t1 a , t2 b 
    where charindex(','+cast(id as varchar(10))+',',','+form1_id+',')>0
    group by id
      

  2.   

    按楼上做法怎么提示错误
    将 varchar 值 ',' 转换为数据类型为 int 的列时发生语法错误。
      

  3.   

    哦,是我弄错了,谢谢zjcxc(邹建) , victorycyz(中海)
      

  4.   

    为什么 victorycyz(中海)的做法会把总数为0的去掉呢?
      

  5.   

    SELECT A.ID,
           (SELECT SUM(CASE WHEN B.FORM1_ID LIKE '%'+CAST(A.ID AS VARCHAR) + ','+ '%' THEN 1
                       END ) AS SL 
              FROM 表2 B ) AS 总数
      FROM 表1 A