查询前
分包商名称  推荐单位  项目经理
分包商1      一分局    张山
分包商1      二分局    李四
分包商1      一分局    王二
分包商2      一分局    张三查询后显示
分包商名称  推荐单位数量  项目经理
分包商1      2           张山
分包商1      2           李四
分包商1      2           王二
分包商2      1           张三

解决方案 »

  1.   

    select 分包商名称 ,
    [推荐单位数量]=(select count(1) from tablename where 分包商名称 = a.分包商名称 ),
    项目经理 
    from tablename a
      

  2.   

    declare @t table(分包商名称 varchar(10),推荐单位 varchar(10),项目经理 varchar(10))
    insert @t select 
    '分包商1','一分局','张山' union select 
    '分包商1','二分局','李四' union select  
    '分包商1','一分局','王二' union select  
    '分包商2','一分局','张三' select 分包商名称 ,
    [推荐单位数量]=(select count(distinct 推荐单位) from @t where 分包商名称 = a.分包商名称 ),
    项目经理 
    from @t a /*
    分包商名称      推荐单位数量      项目经理       
    ---------- ----------- ---------- 
    分包商1       2           李四
    分包商1       2           王二
    分包商1       2           张山
    分包商2       1           张三(所影响的行数为 4 行)
    */
      

  3.   

    select 分包商名称,
           推荐单位数量 = (select count(*) from tb where 分包商名称 = t.分包商名称),
            项目经理 
    from tb t
      

  4.   

    select 名称 ,
    (select count(distinct 推荐单位) from [table] where 名称 = a.名称 ) as '推荐单位数量',
    项目经理 
    from [table] a 
      

  5.   

    SELECT A.分包商名称,B.推荐单位数量,A.项目经理
    FROM 表 A
    LEFT JOIN (SELECT COUNT(*) 推荐单位数量 FROM 表 GROUP BY 推荐单位) B
    ON A.分包商名称 = B.分包商名称
      

  6.   

    declare @a table (名称 varchar(50),推荐单位 varchar(50),项目经理 varchar(10))
    insert into @a select '分包商1','一分局','张山'
    insert into @a select '分包商1','二分局','李四'
    insert into @a select '分包商1','一分局','王二'
    insert into @a select '分包商2','一分局','张三'
    select 名称 ,
    (select count(distinct 推荐单位) from @a where 名称 = a.名称 ) as '推荐单位数量',
    项目经理 
    from @a a 名称 推荐单位数量 项目经理
    分包商1 2 张山
    分包商1 2 李四
    分包商1 2 王二
    分包商2 1 张三