mysql - 无法从其他 View 创建 mysql View

标签 mysql view mysql-error-1064 mariadb

我有以下观点

M_VWPROC_sub1、M_VWPROC_sub2、M_VWPROC_sub3、M_VWPROC_sub4、M_VWPROC_sub5、 M_VWPROC_sub6、M_VWPROC_sub7、M_VWPROC_sub8、M_VWPROC_sub9

我尝试使用以下 sql 创建 View ,但出现以下错误

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'M_VWPROC_sub2 union all M_VWPROC_sub3 union all M_VWPROC_sub4 union all M_VWPROC' at line 2

查询:

CREATE OR REPLACE  VIEW M_VWPROC (UNIT, PS_DATE, LOCALIN, STOCKIN, STOCKOUT) AS 
select inner_sub_table.UNIT, 
       inner_sub_table.PS_DATE, 
       sum(inner_sub_table.LOCALIN)LOCALIN, 
       sum(inner_sub_table.pur) STOCKIN, 
       sum(inner_sub_table.sale) STOCKOUT 
  from M_VWPROC_sub1 
 union all M_VWPROC_sub2 
 union all M_VWPROC_sub3 
 union all M_VWPROC_sub4 
 union all M_VWPROC_sub5
 union all M_VWPROC_sub6 
 union all M_VWPROC_sub7 
 union all M_VWPROC_sub8 
 union all M_VWPROC_sub9) 
       inner_sub_table
 group by inner_sub_table.UNIT, inner_sub_table.PS_DATE;

任何帮助。提前致谢。

最佳答案

union all 的正确语法需要子查询。 。 。这是一个 select 子句。但是,你不能做你想做的事。您需要另一层子查询。像这样的东西:

create view v_YetAnotherView as 
 select * from M_VWPROC_sub1 
 union all select * from M_VWPROC_sub2 
 union all select * from M_VWPROC_sub3 
 union all select * from M_VWPROC_sub4 
 union all select * from M_VWPROC_sub5
 union all select * from M_VWPROC_sub6 
 union all select * from M_VWPROC_sub7 
 union all select * from M_VWPROC_sub8 
 union all select * from M_VWPROC_sub9;

然后:

CREATE OR REPLACE  VIEW M_VWPROC (UNIT, PS_DATE, LOCALIN, STOCKIN, STOCKOUT) AS 
select inner_sub_table.UNIT, 
       inner_sub_table.PS_DATE, 
       sum(yav.LOCALIN)LOCALIN, 
       sum(yav.pur) STOCKIN, 
       sum(yav.sale) STOCKOUT 
  from YetAnotherView yav
  group by yav.UNIT, yav.PS_DATE;

请注意,这种对 View 的荒谬限制(from 子句不能包含子查询)仅限于 MySQL。

关于mysql - 无法从其他 View 创建 mysql View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22712174/

相关文章:

mysql - NULL 值的总和、平均值、最大值、最小值、计数

java - fetchLazy 在 jooq 中如何工作?

android - 在 View 中调整 SVG 图像的大小

mysql - SQL 错误 1064 - MySQL 创建 View 时出现问题

mysql - 如何通过给每列赋予不同的权重来对结果进行排序?

mysql - 如果在mysql查询的added_date中没有找到值,如何将零返回到结果列

javascript - 类型错误 : 'append' called on an object that does not implement interface FormData

c# - ASP .NET MVC 加载后如何将用户从 View 重定向到另一个页面?

php - MySQL 语法错误 1064 与 INSERT 语句

mysql - 错误 : Inserting values from other table via variable