我得到一个错误
“‘从’关键字附近有语法错误”当我执行下面的代码:我得到一个错误
USE Database
GO
DECLARE @DF Datetime = CONVERT(datetime,'30/01/2017',103)
DECLARE @DT Datetime = CONVERT(datetime,'13/03/2017',103)
DECLARE @Owner nvarchar(255) = '[email protected]'
DECLARE @Box nvarchar(255) = 'Sent Items'
DECLARE @ResultTo int = 0
DECLARE @ResultCC int = 0
DECLARE @ResultBCC int = 0
SET @ResultTo = COUNT(ToEmailAddress) FROM EmailTo
WHERE fkDataExtractTableID IN
(
SELECT DataExtractTableID
FROM [Database].[dbo].[DataExtractTable]
WHERE (DateSent between @DF AND @DT)
AND ([Owner] = @Owner)
AND (Box = @Box)
)
我收到此错误信息:
消息156,15级,状态1,行12
关键字'FROM'附近的语法不正确。
我错过了什么?
下面是一个更正:
DECLARE @DF Datetime = CONVERT(datetime,'30/01/2017',103)
DECLARE @DT Datetime = CONVERT(datetime,'13/03/2017',103)
DECLARE @Owner nvarchar(255) = '[email protected]'
DECLARE @Box nvarchar(255) = 'Sent Items'
Declare @ResultTo int = 0
Declare @ResultCC int = 0
Declare @ResultBCC int = 0
SELECT @ResultTo = COUNT(ToEmailAddress) FROM EmailTo
WHERE fkDataExtractTableID IN
(
SELECT DataExtractTableID
FROM [Database].[dbo].[DataExtractTable]
WHERE (DateSent between @DF AND @DT)
AND ([Owner] = @Owner)
AND (Box = @Box)
)
我觉得你的SQL错误第12行可能是这样的:
SET @ResultTo = (select COUNT(ToEmailAddress) FROM EmailTo)
感谢这和上面的其他评论帮助我得到它的工作。 – Siv
更改您的变量赋值:
select @ResultTo = count(ToEmailAddress) from EmailTo
我可以知道上述答案中的错误吗? –
谢谢你的帮助。我现在排序了。 – Siv
在选择查询中不能使用2种不同的语法。要么使用Set
语句或使用简单的查询
SET语句 - 你设置一个变量作为SELECT查询
SET @ResultTo = (Select COUNT(ToEmailAddress) FROM EmailTo
WHERE fkDataExtractTableID IN
(
SELECT DataExtractTableID
FROM [Database].[dbo].[DataExtractTable]
WHERE (DateSent between @DF AND @DT)
AND ([Owner] = @Owner)
AND (Box = @Box)
))
和SELECT语句,您可以设置多个变量值像
回报Select @ResultTo = COUNT(ToEmailAddress)
--Aslo define other variable, if you want
-- like @ResultTo1 , but this query is aggregation, so only aggeregate function use
FROM EmailTo
WHERE fkDataExtractTableID IN
(
SELECT DataExtractTableID
FROM [Database].[dbo].[DataExtractTable]
WHERE (DateSent between @DF AND @DT)
AND ([Owner] = @Owner)
AND (Box = @Box)
)
因为您正在尝试使用具有常规'SELECT'语法的'SET'。它应该是'SET @ResultTo =(SELECT COUNT(ToEmailAddress)...)'或'SELECT @ResultTo = COUNT(ToEmailAddress)...' – ZLK
奇怪的是,我原来用括号括起来, =标志,但仍然出现错误,但由于此处的评论,我现在已经开始工作了。 – Siv