C# 由于错误,SQL查询无法工作
我试图使用内部SQL命令查询一个表,并使用结果查询另一个表,但遇到以下问题 “Msg 137,16级,状态1,第10行 必须声明标量变量“@listofpids” 任何帮助都将不胜感激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
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