我有一个查询,它在从Workbench编辑器执行并使用调用语句从编辑器调用存储过程时产生不同的结果
我正在执行的声明如下
SELECT
sum(PassCount) as PassCount,
sum(FailCount) as FailCount,
sum(NotAttempted) as NotAttempted,
sum(GoalAchieved) as GoalAchieved,
sum(B.AttemptCount) as AttemptCount,
@i as UserCount
FROM usergoalachievement A
JOIN userattemptcount B on B.GoalId=A.GoalId and B.UserProfileId=A.UserProfileId
WHERE B.UserProfileId in (select distinct UserProfileId from usergrouprole WHERE RoleId=4 and GroupId=29)
AND FIND_IN_SET(cast(A.GoalId as char),'30' ) and ifnull(ProgressionType,'')=ifnull(@progressionType,'PMP2') ;
NULL,NULL,NULL,NULL,NULL,NULL
现在使用上面的语句创建一个新的过程sp_test,并使用workbench中的call语句调用该过程,如下所示
call sp_test();
现在结果如下
'63','214','99','0','363','0'
为什么这对同一个查询有所不同( usergoalachievement,userattemptcount是视图)
除了创建存储过程之外,编辑器和存储过程中的语句没有变化。
有人可以解释为什么会发生这种情况
谢谢大家