【发布时间】:2017-09-01 05:18:27
【问题描述】:
我在编写此代码时遇到错误。我该如何解决? 它说错误在'in'
CREATE PROCEDURE spPracticum
(@MaxCountry As VARCHAR,
@MinCountry As VARCHAR)
AS
SELECT
[Country], [Year], [Subscribers], c.[name]
FROM
[dbo].[cell phone subscribers] AS s
JOIN
[dbo].[countries] AS c ON s.[Country] = c.[country-code]
WHERE
@MinCountry <= Country
AND @MaxCountry >= Country IN (SELECT MAX(Subscribers)
FROM [dbo].[cell phone subscribers] )
ORDER BY
Year
【问题讨论】:
-
你可能正在尝试这个
@MaxCountry >= Country and country in (Select max query) -
我可以看到两个错误。首先,您的 create 语句中没有括号(使用函数而不是 procs 中的括号)其次,您的 where 子句。 @ min = Country... 从这里你的 "IN(select...) 没有意义。
-
Bad habits to kick : declaring VARCHAR without (length) - 您应该始终为您使用的任何
varchar变量和参数提供一个长度。在您的情况下, both 参数默认为 1 字符的长度 - 这通常 不是 您想要的.... -
我严重怀疑您是否正在尝试检查
Country是否与Subscribers的最大值相关 - 所以我们是您甚至 尝试 做的在那个WHERE子句中? -
前面的评论员对问题的描述已经足够好了。以后如果遇到错误,至少提供错误信息!
标签: sql-server tsql