首页 > 解决方案 > 无法使 4 个链接表 SQL 查询正常工作

问题描述

我有 4 张桌子:

我想列出订单总额超过 150 美元的所有客户的姓名。

我有什么工作:

SELECT 
    "p"."OrderID", SUM("p"."Quantity" * "g"."RetailPrice") "TotalPrice"
FROM 
    "Purchase" "p" 
JOIN 
    "Games" "g" ON ("p"."GameID" = "g"."GameID")
GROUP BY 
    "p"."OrderID"
HAVING 
    SUM("p"."Quantity" * "g"."RetailPrice") >= 150

我尝试加入客户和订单表,这很有效,但是一旦我尝试选择名字和姓氏列,它就不起作用了;我收到一个错误

不在聚合函数或 group by 子句中

SELECT 
    "c"."FirstName", "c"."LastName", 
    "p"."OrderID", SUM("p"."Quantity" * "g"."RetailPrice") "TotalPrice"
FROM 
    "Customer" "c" 
JOIN 
    "Order" "o" ON "c"."CustomerID" = "o"."CustomerID" 
JOIN 
    "Purchase" "p" ON "o"."OrderID" = "p"."OrderID" 
JOIN  
    "Games" "g" ON ("p"."GameID" = "g"."GameID")
GROUP BY 
    "p"."OrderID"
HAVING 
    SUM("p"."Quantity" * "g"."RetailPrice") >= 150

我在网上看到的关于聚合函数和连接表的解释都不足以让我理解我需要做什么才能完成这项工作。什么是正确的查询,为什么是正确的查询?

标签: sqljoinaggregate-functionslibreoffice-base

解决方案


推荐阅读