C# 由于错误,SQL查询无法工作

C# 由于错误,SQL查询无法工作,c#,asp.net,sql,sql-server,C#,Asp.net,Sql,Sql Server,我试图使用内部SQL命令查询一个表,并使用结果查询另一个表,但遇到以下问题 “Msg 137,16级,状态1,第10行 必须声明标量变量“@listofpids” 任何帮助都将不胜感激 DECLARE @ListofPropIDs TABLE(IDs VARCHAR(100)); INSERT INTO @ListofPropIDs SELECT Id FROM Property WHERE

我试图使用内部SQL命令查询一个表,并使用结果查询另一个表,但遇到以下问题

“Msg 137,16级,状态1,第10行 必须声明标量变量“@listofpids”

任何帮助都将不胜感激

DECLARE @ListofPropIDs TABLE(IDs VARCHAR(100));
INSERT INTO         @ListofPropIDs 
SELECT              Id 
FROM                Property
WHERE               CreatedBy = 'oliver@test.co.uk' 

SELECT          
    COUNT           (Digits)
    FROM            dbo.CallInfo
    WHERE           Digits = @ListofPropIDs; 

GO

在不知道自己想要实现什么的情况下,类似的方法应该可以实现,但可能不正确:

DECLARE @ListofPropIDs TABLE(IDs VARCHAR(100));
INSERT INTO         @ListofPropIDs 
SELECT              Id 
FROM                Property
WHERE               CreatedBy = 'oliver@test.co.uk' 

SELECT          
    COUNT           (Digits)
    FROM            dbo.CallInfo
    WHERE           Digits in (SELECT IDs FROM @ListofPropIDs) 

原始查询试图将一个表变量用作where子句的一部分,就好像它是一个不正确的列一样。

@listofpids是一个表,您将它当作一个值来使用

使用:


不能将表用作where条件值

相反,你可以使用

或使用


在这里,您@listofpids将这个声明为table,并将其称为column。我如何修复它,以便它从表中调用每个值。在c#中,我将执行foreach语句,以便它查询表中的每个值,并给出所有值的总数
SELECT          
    COUNT           (Digits)
    FROM            dbo.CallInfo
    WHERE           Digits IN ( SELECT IDs from @ListofPropIDs)

GO
DECLARE @ListofPropIDs TABLE(IDs VARCHAR(100));
INSERT INTO         @ListofPropIDs 
SELECT              Id 
FROM                Property
WHERE               CreatedBy = 'oliver@test.co.uk' 

SELECT          
    COUNT           (Digits)
    FROM            dbo.CallInfo C
    INNER JOIN @ListofPropIDs s
    on s.IDs = c.Digits
SELECT          COUNT (Digits)
FROM            dbo.CallInfo
WHERE           Digits IN (Select Id  From  @ListofPropIDs)
  SELECT          COUNT (Digits)
  FROM            dbo.CallInfo C
                  Inner Join @ListofPropIDs T On T.Id=C.Digits