如何在子查询中使用存储过程以将主要查询数据作为参数的wery子句中获取值



我想使用存储过程GetSLAClass获取以下内容的单个值。而且我也想将WRMaster(主表)值用作存储过程参数。有解决方案吗?我想做这两项工作以获取正确的数据。

这是错误msg

msg 156,15级,状态1,第7行
关键字" exec"附近的语法不正确。

msg 102,15级,状态1,第7行
'。''

附近的语法不正确

这是我的SQL查询(当前不起作用)

SELECT 
    *
FROM 
    WRMaster W
WHERE 
    DATEDIFF(minute, W.AckedDateTime, W.ResolvedDateTime) <=
        (SELECT Priority
         FROM FMSLAClassPriorityMap
         WHERE SLAClassKey = (EXEC dbo.GetSLAClass W.LocationKey, W.ServicCategoryKey, W.ProblemTypeKey, NULL, ''))
WHERE WRKey=4

这是一种可以做到这一点的方式,

Declare 
@lk as int,
@sck as int,
@pt as int,
@slaclass as int
select @lk = LocationKey from WRMaster where WRKey=4
select @sck = ServicecategoryKey from WRMaster where WRKey=4
select @pt = ProblemKey from WRMaster where WRKey=4
EXEC   dbo.GetSLAClassOutput @lk,@sck,@pt,NULL,'',  @slaclass output
SELECT *
FROM WRMaster W
WHERE DATEDIFF( minute, W.AckedDateTime, W.ResolvedDateTime )<=
(
  SELECT Priority
  FROM FMSLAClassPriorityMap
  WHERE SLAClassKey=( @slaclass) and PriorityKey = W.PriorityKey
)
where WRKey=4

最新更新