我有一个很复杂的查询,如何在不返回记录集的情况下,只返回记录数?

tttk 2005-10-11 08:53:07
例如有如下的一个查询:
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
ORDER BY a.caccount

我现在想在后台检测这个查询所获得的行数而不需要返回记录集,如何实现?不考虑存储过程。
...全文
143 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
tttk 2005-10-11
  • 打赏
  • 举报
回复
正是正是这个意思,谢谢楼上的。
jixiaojie 2005-10-11
  • 打赏
  • 举报
回复
是不是这个意思:

select count(1) 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
tttk 2005-10-11
  • 打赏
  • 举报
回复
在线等待。。。。
tttk 2005-10-11
  • 打赏
  • 举报
回复
谢谢答复。

如果我是在客户端执行的select语句,那么在执行select @@rowcount 之前,会有数据集返回吗?
我主要是基于效率的考虑。
zlp321002 2005-10-11
  • 打赏
  • 举报
回复
执行上面SQL后,执行

select @@rowcount

22,300

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧