select top 200 a.*,b.*
from MemberPrixList a
inner join memberlist b on a.mmembercardid=b.mmembercardid
inner join (select mRcommendId,sum(taoc) as 次数
from memberlist
group by mRcommendId
having sum(taoc)>1)c
on b.mRcommendId=c.mRcommendId
order by c.次数 desc

解决方案 »

  1.   

    try this,-- 1
    select a.*
    from memberlist a
    where mRcommendId in
    (select top 200 mRcommendId,sum(taoc) as 次数
     from memberlist
     group by mRcommendId
     having sum(taoc)>1
     order by 2 desc)-- 2
    select a.*,b.cnt
    from memberlist a
    inner join
    (select top 200 mmembercardid,cnt=sum(msummoney)
     from MemberPrixList
     group by mmembercardid
     order by cnt desc) b on a.mmembercardid=b.mmembercardid
      

  2.   

    1. 
    select top 200 mRcommendId,sum(taoc) as 次数, mphone,membername
    from memberlist
    group by mRcommendId
    having sum(taoc)>1
    order by 2 desc 2. 
    还有需要统计另外一个表
    SELECT top 200 mmembercardid,cnt=sum(msummoney), memberlist.mphone, memberlist.membername
    FROM MemberPrixList
    inner join memberlist on memberlist.mmembercardid = MemberPrixList.mmembercardid 
    GROUP BY mmembercardid
    ORDER BY cnt DESC
      

  3.   

    sorry! 2楼代码有bug,修正如下.-- 1
    select a.*
    from memberlist a
    where mRcommendId in
    (select top 200 mRcommendId
     from memberlist
     group by mRcommendId
     having sum(taoc)>1
     order by 2 desc)
     
    -- 2
    select a.*,b.cnt
    from memberlist a
    inner join
    (select top 200 mmembercardid,cnt=sum(msummoney)
     from MemberPrixList
     group by mmembercardid
     order by cnt desc) b on a.mmembercardid=b.mmembercardid
      

  4.   


    第一个提示ORDER BY 位置号 2 超出了选择列表中项数的范围。
      

  5.   


    第二个代码好像也不对。应该是排列处msummoney 最多的前200名。好像你是累加了前200数据?和直接
    select sum(msummoney) from memberprixlist where mmembercardid='会员号' 查询出来的有出入
      

  6.   

    这样呢:1:
    select top 200 mRcommendId,sum(taoc) as 次数,
           MAX(mphone) mphone,
           max(membername) membername
    from memberlist
    group by mRcommendId
    having sum(taoc)>1
    order by 2 desc 2:
    SELECT top 200 mmembercardid,cnt=sum(msummoney),
           max(memberlist.mphone) as mphone, 
           max(memberlist.membername) as membername
    FROM MemberPrixList
    inner join memberlist 
            on memberlist.mmembercardid = MemberPrixList.mmembercardid 
    GROUP BY mmembercardid
    ORDER BY cnt DESC
      

  7.   

    第一个有用,第二个提示mmembercardid不明确是什么意思?
      

  8.   


    可以了。我修改成
    SELECT top 200 MemberPrixList.mmembercardid,cnt=sum(msummoney),
           max(memberlist.mphone) as mphone, 
           max(memberlist.mmembername) as mmembername
    FROM MemberPrixList
    inner join memberlist 
            on memberlist.mmembercardid = MemberPrixList.mmembercardid 
    GROUP BY MemberPrixList.mmembercardid
    ORDER BY cnt DESC
      

  9.   

    第一个有用,第二个提示mmembercardid不明确是什么意思?哦 ,第二个改了一下,在试试:
    SELECT top 200 memberlist.mmembercardid,cnt=sum(msummoney),
           max(memberlist.mphone) as mphone, 
           max(memberlist.membername) as membername
    FROM MemberPrixList
    inner join memberlist 
            on memberlist.mmembercardid = MemberPrixList.mmembercardid 
    GROUP BY memberlist.mmembercardid
    ORDER BY cnt DESC
      

  10.   


    可以了。我修改成
    SELECT top 200 MemberPrixList.mmembercardid,cnt=sum(msummoney),
           max(memberlist.mphone) as mphone, 
           max(memberlist.mmembername) as mmembername
    FROM MemberPrixList
    inner join memberlist 
            on memberlist.mmembercardid = MemberPrixList.mmembercardid 
    GROUP BY MemberPrixList.mmembercardid
    ORDER BY cnt DESC哦,是的, 这样对的
      

  11.   


    刚发现第一个也有错误啊。mphone和name和id对应不上。。
      

  12.   


    刚发现第一个也有错误啊。mphone和name和id对应不上。。哦,对了,你的 mmembercardid 和 mphone、name 是一对多的关系吗
      

  13.   


    刚发现第一个也有错误啊。mphone和name和id对应不上。。哦,对了,你的 mmembercardid 和 mphone、name 是一对多的关系吗不是一对多的。一个mmembercardid只有一个mphone和name
      

  14.   


    刚发现第一个也有错误啊。mphone和name和id对应不上。。哦,对了,你的 mmembercardid 和 mphone、name 是一对多的关系吗不是一对多的。一个mmembercardid只有一个mphone和name那照理就不会出现对应不上的情况的
      

  15.   


    刚发现第一个也有错误啊。mphone和name和id对应不上。。哦,对了,你的 mmembercardid 和 mphone、name 是一对多的关系吗不是一对多的。一个mmembercardid只有一个mphone和name那照理就不会出现对应不上的情况的应该是因为查询的字段是mRcommendId,mRcommendId是“推荐人”字段,所以这个是很多的。每个会员都有一个mRcommendId,所以可能是因为这个?
      

  16.   

    那就这样:select top 200 
           t1.mRcommendId,
           sum(t1.taoc) as 次数,
           MAX(t2.mphone) mphone,
           max(t2.membername) membername
    from memberlist t1
    inner join memberlist t2
            on t1.mRcommendId = t2.mmembercardid
    group by t1.mRcommendId
    having sum(t1.taoc)>1
    order by 2 desc 
      

  17.   


    可以了。感谢。顺便问价,如果有条件怎么加啊?在from memberlist t1后面加where ti.msd<>1 提示出错。
      

  18.   


    可以了。感谢。顺便问价,如果有条件怎么加啊?在from memberlist t1后面加where ti.msd<>1 提示出错。试试这个:
    select top 200 
           t1.mRcommendId,
           sum(t1.taoc) as 次数,
           MAX(t2.mphone) mphone,
           max(t2.membername) membername
    from memberlist t1
    inner join memberlist t2
            on t1.mRcommendId = t2.mmembercardid
    where ti.msd<>1    --加在这里试试
    group by t1.mRcommendId
    having sum(t1.taoc)>1
    order by 2 desc