创建视图中的语法错误 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;