Mysql 错误:视图';s SELECT包含一个变量或参数
我正在使用MySQL工作台8: 我无法创建此视图,因为我遇到以下错误: 视图的SELECT包含一个变量或参数 以下是我的看法:Mysql 错误:视图';s SELECT包含一个变量或参数,mysql,sql,Mysql,Sql,我正在使用MySQL工作台8: 我无法创建此视图,因为我遇到以下错误: 视图的SELECT包含一个变量或参数 以下是我的看法: Create view history as select ShippedDate, round(previous_operation) as DayEnd, DayStart ,Reorderunits,Quantity,reorderlevel from ( select y.* , @prev AS previous_Operation , @prev := Da
Create view history as
select ShippedDate, round(previous_operation) as DayEnd, DayStart ,Reorderunits,Quantity,reorderlevel from (
select
y.*
, @prev AS previous_Operation
, @prev := DayStart
from
ExpectedHistory y
, (select @prev:=NULL) vars
order by ShippedDate desc
注意:@prev保存一个整数值如果您想在MySQL 8+中执行上一个操作,请使用
lead()
:
您不能使用变量或参数您不了解错误的原因是什么?它包含一个变量
@prev
,视图不支持该变量。可以使用存储过程代替视图。存储过程可以有参数。视图不能有参数。@sithj。请提供示例数据、期望的结果,并解释您想要实现的逻辑。您好,非常感谢,但是lead and lag在版本8中似乎不起作用。我试过了it@sithj . . . (1) 答案使用lead()
。(2) lead()
在V8()中绝对可用。
create view history as
select ShippedDate, DayStart,
lead(day_start) over (partition by shippeddate) as as dayend,
Reorderunits, Quantity, reorderlevel,
from ExpectedHistory eh;