【发布时间】:2020-12-03 17:36:58
【问题描述】:
Microsoft SQL Server Management Studio 18 显示错误:
CREATE VIEW 必须是批处理中的唯一语句
执行请求后,出现如下错误:
“select”关键字周围的语法不正确
create view revenue0 (supplier_no, total_revenue) as
select
l_suppkey,
sum(l_extendedprice * (1 - l_discount))
from
lineitem
where
l_shipdate >= '1996-05-01'
and l_shipdate < dateadd(mm,3,cast('1996-05-01' as datetime))
group by
l_suppkey;
select
s_suppkey,
s_name,
s_address,
s_phone,
total_revenue
from
supplier,
revenue0
where
s_suppkey = supplier_no
and total_revenue = (
select
max(total_revenue)
from
revenue0
)
order by
s_suppkey
option (maxdop 2)
drop view revenue0
UPD。我尝试使用这种方法运行:
create view revenue0 (supplier_no, total_revenue) as
select
l_suppkey,
sum(l_extendedprice * (1 - l_discount))
from
lineitem
where
l_shipdate >= cast('1996-05-01' as datetime)
and l_shipdate < dateadd(mm, 3, cast('1996-05-01' as datetime))
group by
l_suppkey;
go
select
s_suppkey,
s_name,
s_address,
s_phone,
total_revenue
from
supplier,
revenue0
where
s_suppkey = supplier_no
and total_revenue = (
select
max(total_revenue)
from
revenue0
)
order by
s_suppkey;
drop view revenue0;
但是作为执行请求的结果,显示错误: 无效的对象名称“revenue0”。 只要我没有改名。 SQL 都以这个名字发誓。
UPD2。这个问题是独立解决的。话题已关闭!谢谢大家的努力!
【问题讨论】:
-
在视图定义后面加上
GO这个词。 -
你能告诉我具体在哪里吗?我不太擅长 SQL。非常感谢!
-
group by l_suppkey; GO -
围绕“go”构造的语法不正确。
-
你不能在视图中使用“order by”,重新设计你的视图以不使用它。
标签: sql sql-server view ssms