Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL无法在from子句中为子查询创建视图_Mysql_Mysql Workbench_Mysql Error 1349 - Fatal编程技术网

MySQL无法在from子句中为子查询创建视图

MySQL无法在from子句中为子查询创建视图,mysql,mysql-workbench,mysql-error-1349,Mysql,Mysql Workbench,Mysql Error 1349,我正在尝试进行一个查询,该查询将显示前10个系统,“其他”显示为第11行。我提出了联合询问。我发现我构建的查询会为每个不在Top10中的系统名返回“Other”记录,所以我在select中选择了select,将所有“Other”记录相加。这使我找到了错误代码1349。有人能帮我重新安排这个问题吗 create view QueryView as (Select System, Cast(Sum(Duration) as unsigned) AS 'Sum' From tbl_Events

我正在尝试进行一个查询,该查询将显示前10个系统,“其他”显示为第11行。我提出了联合询问。我发现我构建的查询会为每个不在Top10中的系统名返回“Other”记录,所以我在select中选择了select,将所有“Other”记录相加。这使我找到了错误代码1349。有人能帮我重新安排这个问题吗

create view QueryView as (Select 
System, Cast(Sum(Duration) as unsigned) AS 'Sum'
From
tbl_Events
    INNER JOIN
(trans_GU, tbl_G, trans_GM) ON (trans_GU.Unit_ID = tbl_Events.Unit_ID
    AND trans_GU.GIB_SN = tbl_G.SN
    AND tbl_G.EQUIPCODE = trans_GM.EQUIPCODE
    AND tbl_G.GEN_MODEL = trans_GM.GEN_MODEL)
WHERE
trans_GM.ProductLine = 'fleet'
GROUP BY System
Order By Sum desc
Limit 10) 
Union 
(Select 'Other' As System, Cast(Sum(a.`Sum`) As Unsigned) As 'Sum' FROM (Select 
'Other' As System,
Sum(Duration) AS 'Sum'
FROM    tbl_Events
    INNER JOIN
(trans_GU, tbl_G, trans_GM) ON (trans_GU.Unit_ID = tbl_Events.Unit_ID
    AND trans_GU.GIB_SN = tbl_G.SN
    AND tbl_G.EQUIPCODE = trans_GM.EQUIPCODE
    AND tbl_G.GEN_MODEL = trans_GM.GEN_MODEL)
WHERE
trans_GM.ProductLine = 'fleet'
GROUP BY System
Order By Sum desc
Limit 10,99999999) As a);

对。MySQL不支持
from
子句中的子查询。您可以将查询的第二部分重写为,而不使用子查询:

(Select 'Other', cast(Sum(Duration) as unisgned) AS "Sum"
 FROM  tbl_Events INNER JOIN
      (trans_GU, tbl_G, trans_GM)
      ON (trans_GU.Unit_ID = tbl_Events.Unit_ID
          AND trans_GU.GIB_SN = tbl_G.SN
          AND tbl_G.EQUIPCODE = trans_GM.EQUIPCODE
          AND tbl_G.GEN_MODEL = trans_GM.GEN_MODEL)
 WHERE trans_GM.ProductLine = 'fleet'
 From tbl_RAM
 GROUP BY System
 Order By Sum desc
 Limit 10,99999999
) 

谢谢你的回答,我尝试了这个,但是我返回了不止一行。这就是我进行子查询的原因。