[英]Returns zero not a value
Issue: PassedPercent returns 0 but there should be a number (I can confirm in all cases @Started and @Passed have numerical values). 问题:PassedPercent返回0,但是应该有一个数字(我可以在所有情况下确认@Started和@Passed具有数值)。 The same formula worked correctly on the .aspx page but I'm converted it to an SQL query. 相同的公式在.aspx页上正常工作,但是我将其转换为SQL查询。
Code: 码:
USE DATABASE
DECLARE @i INT = 0
DECLARE @ModuleID bigint
DECLARE @Started bigint
DECLARE @Completed bigint
DECLARE @Passed bigint
DECLARE merge_cursor CURSOR FAST_FORWARD FOR SELECT [ModuleID] FROM dbo.[TblModules]
--ORDER BY [ModuleID]
OPEN merge_cursor
FETCH NEXT FROM merge_cursor INTO @ModuleID
WHILE @@FETCH_STATUS = 0
BEGIN
SET @Started = (Select Count(ID) FROM [TblResults] WHERE [ModuleID] = @ModuleID)
SET @Completed = (Select Count(ID) FROM [TblResults] WHERE [ModuleID] = @ModuleID and ModuleDatecomplete <> '')
SET @Passed = (Select Count(ID) FROM [TblResults] WHERE [ModuleID] = @ModuleID and Pass = 'Yes')
UPDATE [TblModules] SET [Started] = @Started,[Completed] = @Completed,[Passed] = @Passed,[PassedPercent] = ((@Passed / @Started) * 100)
WHERE [ModuleID] = @ModuleID
FETCH NEXT FROM merge_cursor INTO @ModuleID
END
CLOSE merge_cursor
DEALLOCATE merge_cursor
An int / int will return an int (in this case zero) 一个int / int将返回一个int(在这种情况下为零)
Try 尝试
,[PassedPercent] = (@Passed *100.0) / @Started
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.