如下图表中有一个memberId字段 
第二个图中有一个id字段现在的要求是要把第一个表按照MemberId分组,求出每一组的Count,显示表2中的name还要加上条件Operation=Add和 ObjectName=Post
并且,Creatdate>'2010-1-1'
第一个表叫 WebLog
第二个表叫Member

解决方案 »

  1.   


    select a.memberid,COUNT(1) as [count],max(b.name) as name from weblog a 
    join member b on a.memberid=b.id
    where a.operation='add' and a.objectname='post' and a.createdate>'2010-01-01'
    group by a.memberid
      

  2.   

    select b.name,a.cnt
    from 
    (select MemberId,count(1) as cnt from weblog 
     where Operation='Add' and ObjectName='Post'
     and Creatdate>'2010-1-1'
     group by MemberId
    ) a
    join member b on a.MemberId=b.id
      

  3.   

    select a.Name, b.cn from Member a left join
    (select MemberId, count(1)cn from WebLog where Operation='Add' and ObjectName='Post' group by MemberId) b
    on a.Id=b.MemberId
    where a.Creatdate>'2010-1-1'
      

  4.   

    SELECT 
    T1.MEMBERID,T2.NAME,T1.TOTAL
    FROM (
    SELECT MEMBERID,COUNT(1) AS TOTAL
    FROM WEBLOG
    WHERE Operation='Add' AND ObjectName='Post'
    GROUP BY MEMBERID
    ) T1
    LEFT JOIN [MEMBER] T2 ON T1.MEMBERID=T2.ID
      

  5.   

    谢谢大家那么热心啊我想问一下COUNT(1)的作用是分组后记录每组的个数吗?
      

  6.   

    相当于count(MEMBERID) , 或者count(*) 
      

  7.   


    max(b.name)问您一下这个写法会不会只出来一个name呢