select *
,(select count(*) from tbclient where groupID = tbclientgroup.tbclientgroup)
,(select count(*) from tbclient where groupID = tbclientgroup.tbclientgroup)
 /
 (select count(*) from tbclient)
from tbclientgroup

解决方案 »

  1.   

    select *
    ,(select count(*) from tbclient where groupID = tbclientgroup.tbclientgroup)
    ,100 * (select count(*) from tbclient where groupID = tbclientgroup.tbclientgroup)
     /
     (select count(*) from tbclient)
    ,'%'
    from tbclientgroup
      

  2.   

    select 
    b.groupid,a.groupname,
    count(case when c.clientid then 1 else 0 end),
    (count(case when c.clientid then 1 else 0 end))/count(c.*) as proportion
    from tbclient a,tbclientgroup b ,tbbacklink c
    where a.groupid=b.groupid and a.clientid=c.clientid
    group by b.groupid,a.groupname
      

  3.   

    我不太明白你要求安照什么来查询.
    给点个人意见:
    表 tbclient 结构如下:clientID(主)  groupID(不能为空)  groupname(不能为空)...表tbclientgroup 结构:groupID(主) groupname
     1          合作伙伴
     2          竞争对手
     3          未分类
     4          关系客户 
    这两个表中,如果groupid 与groupname都是tbclicentgroup中相应字段的话,
    tbclient 中的groupname就显得重复没有必要.
      

  4.   

    select a.groupID,a.groupname
    ,groupnull=count(b.BackLinkID)
    ,proportion=case 
    when (select count(*) from tbBackLink)=0 or count(b.BackLinkID)=0
    then '0%'
    else cast(cast(
    count(b.BackLinkID)*100.0
    /(select count(*) from tbBackLink)
    as decimal(10,2)) as varchar)+'%' end
    from tbclientgroup a
    left join tbBackLink b on a.ClientID=b.ClientID
    group by a.groupID,a.groupname