Stored procedures 如何从存储过程中获取返回行数-SQL Server 2012
我正在SQL Server 2012中编写一个存储过程,在读取存储过程在匹配所有条件和联接条件后将返回的行数时遇到了问题 我的存储过程是:Stored procedures 如何从存储过程中获取返回行数-SQL Server 2012,stored-procedures,sql-server-2012,rdbms,Stored Procedures,Sql Server 2012,Rdbms,我正在SQL Server 2012中编写一个存储过程,在读取存储过程在匹配所有条件和联接条件后将返回的行数时遇到了问题 我的存储过程是: SELECT DISTINCT COUNT(crs.CourseId) OVER() AS Recordcounts, crs.CourseId, crs.CourseName, crs.CourseDescription, (SELECT CourseGroupName FROM CourseGroup cgrp
SELECT DISTINCT
COUNT(crs.CourseId) OVER() AS Recordcounts,
crs.CourseId,
crs.CourseName,
crs.CourseDescription,
(SELECT CourseGroupName FROM CourseGroup cgrp
WHERE cgrp.CourseGroupId = crs.CourseGroupId) AS Category
FROM
Courses crs
INNER JOIN
CourseRequests creq ON crs.CourseId = creq.CourseId
WHERE
crs.Coursename <> ''''
它返回16作为其中一个条件的记录计数,但实际上,结果仅为3行
有人能帮我吗
谢谢
下面的屏幕截图将更清楚地说明其中一种情况的问题:尝试以下方法:
;with cte as(
SELECT distinct
crs.CourseId,
crs.CourseName,
crs.CourseDescription,
(SELECT CourseGroupName FROM CourseGroup cgrp
WHERE cgrp.CourseGroupId = crs.CourseGroupId) AS Category
FROM
Courses crs
INNER JOIN
CourseRequests creq ON crs.CourseId = creq.CourseId
WHERE
crs.Coursename <> '''')
Select *, (select COUNT(CourseId) from cte) AS Recordcounts
from cte
我不明白你的意思。如果它返回的记录比预期的多,那么查询就有问题。SP如何影响这一点?此外,我没有看到GROUPBY语句,因此我猜测有16条记录满足筛选条件,并且所有记录计数都是1。对吗?它返回的是正确的记录,但Recordcounts中的值是16,其中实际结果只有3行,所以Recordcounts应该是3,但我不知道如何获得它。你能试试这个吗?按crs.CourseId选择distinct countcrs.CourseId作为记录计数,crs.CourseId,crs.CourseName,crs.CourseDescription,从CourseGroup cgrp中选择CourseGroupName,其中cgrp.CourseGroupId=crs.CourseGroupId作为类别从Courses crs内部连接CourseRequests crs上的creq.CourseId=creq.CourseId其中crs.Coursename此屏幕截图将更清楚地说明问题:上述建议无效?我看不到截图