创建视图中的语法错误 MySQL
Syntaxis error in Create View MySQL
我正在尝试创建一个视图,该视图从与 LoadOrder (Orden de carga) 的行程 (viaje) 相对应的日志(Registro tracto 和 registro Operador)中提取最后一个条目,并显示每个 'Load Order with info' E-R diagram
我画了下一个视图的草图,但由于 Sytaxis 错误我无法使它工作。
`CREATE VIEW `OrdenEnCurso` AS
SELECT OC.'NO_ORDEN_DE_CARGA' AS 'ORDEN DE CARGA'
, OC.'ID_VIAJE' AS 'ID DE VIAJE'
, RT.'TRACTO_ECO' AS 'TRACTO'
, ROO.'NOMBRE' AS 'N.OPERADOR',
GF.S AS 'GASTOS FINANCIADOS'
FROM
'ORDEN_DE _CARGA' AS OC
INNER JOIN (SELECT 'TRACTO_ECO','ID_VIAJE' FROM 'REGISTRO_TRACTO' GROUP BY
'ID_VIAJE' HAVING MAX('FECHAHORA') ) AS RT
ON OC.ID_VIAJE=RT.ID_VIAJE
INNER JOIN (SELECT CONCAT_WS(',',O.AP_PAT,O.AP_MAT,O.NOMBRE) AS 'NOMBRE'
FROM 'OPERADOR' AS O
INNER JOIN (SELECT 'ID_VIAJE','NO_OPERADOR' FROM 'REGISTRO_OPERADOR'
GROUP BY 'ID_VIAJE' HAVING MAX('FECHAHORA') ) AS RO
ON RO.NO_OPERADOR=O.NO_OPERADOR) AS ROO
ON OC.ID_VIAJE=ROO.ID_VIAJE
INNER JOIN (SELECT 'OC',SUM(IMPORTE) AS S FROM 'GASTOS_F_CLIENTE'
GROUP BY
'NO_ORDEN_DE_CARGA') AS GF ON OC.NO_ORDEN_DE_CARGA=GF.OC;
此外,如您所见,我想将 Operator 名称以逗号分隔。最后总结客户将为每个 LoadOrder 支付多少额外费用。
Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''NO_ORDEN_DE_CARGA' AS 'ORDEN DE CARGA' , OC.'ID_VIAJE' AS 'ID DE VIAJE' , R' at line 2 0.000 sec
您混淆了刻度和引号的使用
试试这个 SQL 语句
CREATE VIEW OrdenEnCurso AS
SELECT OC.NO_ORDEN_DE_CARGA AS `ORDEN DE CARGA`,
OC.ID_VIAJE AS `ID DE VIAJE`,
RT.TRACTO_ECO AS TRACTO,
ROO.NOMBRE AS `N.OPERADOR`,
GF.S AS `GASTOS FINANCIADOS`
FROM ORDEN_DE_CARGA AS OC
INNER JOIN (
SELECT TRACTO_ECO, ID_VIAJE
FROM REGISTRO_TRACTO
GROUP BY ID_VIAJE
HAVING MAX(FECHAHORA)
) AS RT
ON OC.ID_VIAJE = RT.ID_VIAJE
INNER JOIN (
SELECT CONCAT_WS(`,`,O.AP_PAT,O.AP_MAT,O.NOMBRE) AS NOMBRE
FROM OPERADOR AS O
INNER JOIN (
SELECT ID_VIAJE, NO_OPERADOR
FROM REGISTRO_OPERADOR
GROUP BY ID_VIAJE
HAVING MAX(FECHAHORA)
) AS RO
ON RO.NO_OPERADOR=O.NO_OPERADOR
) AS ROO
ON OC.ID_VIAJE=ROO.ID_VIAJE
INNER JOIN (
SELECT OC,SUM(IMPORTE) AS S
FROM GASTOS_F_CLIENTE
GROUP BY NO_ORDEN_DE_CARGA
) AS GF
ON OC.NO_ORDEN_DE_CARGA=GF.OC;
我正在尝试创建一个视图,该视图从与 LoadOrder (Orden de carga) 的行程 (viaje) 相对应的日志(Registro tracto 和 registro Operador)中提取最后一个条目,并显示每个 'Load Order with info' E-R diagram
我画了下一个视图的草图,但由于 Sytaxis 错误我无法使它工作。
`CREATE VIEW `OrdenEnCurso` AS
SELECT OC.'NO_ORDEN_DE_CARGA' AS 'ORDEN DE CARGA'
, OC.'ID_VIAJE' AS 'ID DE VIAJE'
, RT.'TRACTO_ECO' AS 'TRACTO'
, ROO.'NOMBRE' AS 'N.OPERADOR',
GF.S AS 'GASTOS FINANCIADOS'
FROM
'ORDEN_DE _CARGA' AS OC
INNER JOIN (SELECT 'TRACTO_ECO','ID_VIAJE' FROM 'REGISTRO_TRACTO' GROUP BY
'ID_VIAJE' HAVING MAX('FECHAHORA') ) AS RT
ON OC.ID_VIAJE=RT.ID_VIAJE
INNER JOIN (SELECT CONCAT_WS(',',O.AP_PAT,O.AP_MAT,O.NOMBRE) AS 'NOMBRE'
FROM 'OPERADOR' AS O
INNER JOIN (SELECT 'ID_VIAJE','NO_OPERADOR' FROM 'REGISTRO_OPERADOR'
GROUP BY 'ID_VIAJE' HAVING MAX('FECHAHORA') ) AS RO
ON RO.NO_OPERADOR=O.NO_OPERADOR) AS ROO
ON OC.ID_VIAJE=ROO.ID_VIAJE
INNER JOIN (SELECT 'OC',SUM(IMPORTE) AS S FROM 'GASTOS_F_CLIENTE'
GROUP BY
'NO_ORDEN_DE_CARGA') AS GF ON OC.NO_ORDEN_DE_CARGA=GF.OC;
此外,如您所见,我想将 Operator 名称以逗号分隔。最后总结客户将为每个 LoadOrder 支付多少额外费用。
Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''NO_ORDEN_DE_CARGA' AS 'ORDEN DE CARGA' , OC.'ID_VIAJE' AS 'ID DE VIAJE' , R' at line 2 0.000 sec
您混淆了刻度和引号的使用
试试这个 SQL 语句
CREATE VIEW OrdenEnCurso AS
SELECT OC.NO_ORDEN_DE_CARGA AS `ORDEN DE CARGA`,
OC.ID_VIAJE AS `ID DE VIAJE`,
RT.TRACTO_ECO AS TRACTO,
ROO.NOMBRE AS `N.OPERADOR`,
GF.S AS `GASTOS FINANCIADOS`
FROM ORDEN_DE_CARGA AS OC
INNER JOIN (
SELECT TRACTO_ECO, ID_VIAJE
FROM REGISTRO_TRACTO
GROUP BY ID_VIAJE
HAVING MAX(FECHAHORA)
) AS RT
ON OC.ID_VIAJE = RT.ID_VIAJE
INNER JOIN (
SELECT CONCAT_WS(`,`,O.AP_PAT,O.AP_MAT,O.NOMBRE) AS NOMBRE
FROM OPERADOR AS O
INNER JOIN (
SELECT ID_VIAJE, NO_OPERADOR
FROM REGISTRO_OPERADOR
GROUP BY ID_VIAJE
HAVING MAX(FECHAHORA)
) AS RO
ON RO.NO_OPERADOR=O.NO_OPERADOR
) AS ROO
ON OC.ID_VIAJE=ROO.ID_VIAJE
INNER JOIN (
SELECT OC,SUM(IMPORTE) AS S
FROM GASTOS_F_CLIENTE
GROUP BY NO_ORDEN_DE_CARGA
) AS GF
ON OC.NO_ORDEN_DE_CARGA=GF.OC;