sql - 无法使 4 个链接表 SQL 查询正常工作
问题描述
我有 4 张桌子:
- 客户(客户 ID(PK)、名字、姓氏)
- 订单 (OrderID(PK), CustomerID(FK))
- 购买(OrderID(FK)、GameID(FK)、数量)
- 游戏(GameID(PK)、RetailPrice)
我想列出订单总额超过 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
我在网上看到的关于聚合函数和连接表的解释都不足以让我理解我需要做什么才能完成这项工作。什么是正确的查询,为什么是正确的查询?
解决方案
推荐阅读
- azure - 是否可以确定是什么阻止了等待?
- python - catchup_by_default = False 被 DebugExecutor 忽略
- overleaf - 背页中的 AutoFit 表格
- java - C++ 警告和 logj4 日志级别
- java - Kafka 生产者无法正常工作,出现错误 kafka-producer-network-thread | 生产者-1
- c++ - make_heap 内存访问问题 error: Abort (core dumped)
- excel - 在 Excel 中合并两个列表,一个在另一个之下
- javascript - 带有背景图像的滑块循环
- c# - 通过 VB .NET 编辑 Excel 连接字符串
- angular - 使用 NGRX 创建成功后关闭 Angular Material 对话框,效果