只想要行数,不要结果集,直接count就是了为什么还要产生结果集

解决方案 »

  1.   

    select count(*) from 
    (
      select a.caccount, cname, count_account=COUNT(*), sum_num=SUM(mnum), date_min=MIN(mdate), date_max=MAX(mdate), date_part=mdate 
    from bm_person AS a LEFT JOIN bm_account 
    AS b ON b.caccount=a.caccount 
    where (mdate BETWEEN '2005-1-1' AND '2005-11-1') 
    GROUP BY a.caccount, mdate, cname, cicnumber 
    HAVING SUM(mnum)>=5 and COUNT(*)>=6 
    ) t
      

  2.   

    如果你的语句正确,
    直接使用其作为子查询求count(*)即可.select count(*) from
    (
    select a.caccount, cname, count_account=COUNT(*), sum_num=SUM(mnum), date_min=MIN(mdate), date_max=MAX(mdate), date_part=mdate 
    from bm_person AS a LEFT JOIN bm_account 
    AS b ON b.caccount=a.caccount 
    where (mdate BETWEEN '2005-1-1' AND '2005-11-1') 
    GROUP BY a.caccount, mdate, cname, cicnumber 
    HAVING SUM(mnum)>=5 and COUNT(*)>=6 
    ) t
      

  3.   

    如果你是指程序调用, 则:
    SqlCommand.ExecuteNonQuery 方法
    对连接执行 Transact-SQL 语句并返回受影响的行数。 
      

  4.   

    或者, 你用SqlCommand..::.ExecuteScalar 方法, 该方法的返回值就是记录数据
    执行的语句需要变成:
    select count(*)
    from(
    select a.caccount, cname, count_account=COUNT(*), sum_num=SUM(mnum), date_min=MIN(mdate), date_max=MAX(mdate), date_part=mdate 
    from bm_person AS a LEFT JOIN bm_account 
    AS b ON b.caccount=a.caccount 
    where (mdate BETWEEN '2005-1-1' AND '2005-11-1') 
    GROUP BY a.caccount, mdate, cname, cicnumber 
    HAVING SUM(mnum)>=5 and COUNT(*)>=6 
    )a
      

  5.   

    可以直接对查询结果使用select count(*) from (查询结果)a