【发布时间】:2016-06-19 18:32:06
【问题描述】:
我试图得到pointsEarned 列的总和和pointsPossible 列的总和。我想把它变成一个百分比。我的问题是我的 SP 总是返回 0,即使有给定 enrollmentId 的行具有前一列的值。
我做错了什么?
ALTER PROCEDURE GetPercentage
@enrollmentId int
AS
BEGIN
DECLARE @pointsEarned int;
DECLARE @pointsPossible int;
SET NOCOUNT ON;
SELECT
@pointsEarned = CAST(SUM(pointsEarned) OVER() AS decimal),
@pointsPossible = CAST(SUM(pointsPossible) OVER() AS decimal)
FROM
Assignments
WHERE
enrollmentId = @enrollmentId
RETURN @pointsEarned / @pointsPossible
END
GO
这是数据库表:
我执行了存储过程并传入了69的enrollmentId,它仍然返回0。
【问题讨论】:
-
我会去掉 RETURN 并用 SELECT 替换它
-
显示你的
exec脚本 -
你为什么要去掉退货并用
select代替?并没有解决问题,完全改变了SP的使用方式。 -
您希望在您的示例中得到什么结果?
标签: sql-server tsql stored-procedures