我知道这是错误的并且不会起作用,但是我知道我想要做什么。
我只是加入了[GetFinalCountByGroupId] sp在内部使用的表,但我不想这样,因为它使用的表有一些大的varbinary数据。当然sp仍在查询它,所以它可能与连接而不是sp调用一样好。无论哪种方式,我都很好奇,如果我能先让它工作 - 如果不是我,我会尝试加入。无论如何,这里有一些代码:
CREATE PROCEDURE [dbo].[GetFinalRequests]
AS
BEGIN
SET NOCOUNT ON
DECLARE @FinalTable TABLE
(
FinalCount TINYINT
)
INSERT INTO @FinalTable
EXEC [dbo].[GetFinalCountByGroupId] [GroupId]
SELECT [Id]
,[GroupId]
,[SubmitBy]
,[InUse]
FROM [dbo].[Requests]
WHERE [InUse] = 1
AND @FinalTable.FinalCount > 0
END
编辑:这是执行此操作的结果...... 必须声明标量变量" @ FinalTable"。
答案 0 :(得分:1)
这里有语法错误:
SELECT [Id]
,[GroupId]
,[SubmitBy]
,[InUse]
FROM [dbo].[Requests]
WHERE [InUse] = 1
AND @FinalTable.FinalCount > 0
您无法像FinalCount
中那样访问SQL
列。
我不知道临时表的目的,只是为了让它工作:
SELECT [Id]
,[GroupId]
,[SubmitBy]
,[InUse]
FROM [dbo].[Requests]
WHERE [InUse] = 1
AND (select sum(FinalCount) from @FinalTable) > 0
答案 1 :(得分:0)
好的 - 我放弃了这个,只是做了一个加入:
SELECT [Id]
,r.[GroupId]
,[SubmitBy]
,[InUse]
FROM [dbo].[Requests] r
JOIN [dbo].[AgreementDocuments] d
ON r.[GroupId] = d.[GroupId]
WHERE r.[InUse] = 1
AND d.[Final] = 1