我不知道如何格式化 FROM 语句以避免语法错误字符串文字

问题描述 投票:0回答:1

我不知道为什么 SQL 无法识别

FROM
语句中的表名。它返回一个语法错误,指出预期字符串文字“peak-bit-402819.warehouse_orders.Orders”位于 [7:10] 我尝试在 FROM 语句中添加双引号,但无济于事。编辑:我添加了我使用的两个表中的详细信息图片。我还尝试使用详细的表名称并得到相同的“未在美国找到”错误。请看图片。

SELECT
    Warehouse.warehouse_id,
    CONCAT(Warehouse.state, ":", Warehouse.warehouse_alias) AS warehouse_name,
    COUNT(Orders.order_id) AS number_of_orders,
    (SELECT COUNT(*) 
     FROM 'peak-bit-402819.warehouse_orders.Orders' Orders) AS total_orders,
    CASE 
        WHEN COUNT(Orders.order_id)/(SELECT COUNT(*) FROM warehouse_orders.Orders Orders) <= 0.20
            THEN "fulfilled 0-20% of Orders"
        WHEN COUNT(Orders.order_id)/(SELECT COUNT(*) FROM warehouse_orders.Orders Orders) > 0.20
             AND COUNT(Orders.order_id)/(SELECT COUNT(*) FROM warehouse_orders.Orders Orders) <= 0.60
            THEN "Fulfilled 21-60% of Orders"
        ELSE "Fulfilled more than 60% of Orders"
    END AS fulfillment_summary
FROM  
    'peak-bit-402819.warehouse_orders.Warehouse' Warehouse
LEFT JOIN 
    warehouse_orders.Orders Orders ON Orders.warehouse_id = Warehouse.warehouse_id
GROUP BY
    Warehouse.warehouse_id,
    warehouse_name
HAVING
    COUNT(Orders.order_id) > 0

With FROM statements that have short table names

Warehouse table name

Orders Table name

With FROM statements with backticks and full table name

sql string syntax
1个回答
0
投票

如果这些是实际的表名称,您可以尝试使用括号代替:

(SELECT COUNT(*) 
     FROM [peak-bit-402819.warehouse_orders.Orders] Orders) AS total_orders,

FROM  
    [peak-bit-402819.warehouse_orders.Warehouse] Warehouse
© www.soinside.com 2019 - 2024. All rights reserved.