我在创建带有子查询的查询以在我的数据库中查找购买次数最多的一位客户时遇到问题。我需要列出他/她的全名、产品名称、价格和数量。这是我到目前为止所拥有的
select first_name ||' '|| last_name "FullName", pt.name p.price, sum(ps.quantity)
from customers c
join purchases ps on c.customer_id = ps.customer_id
join products p on p.product_id = ps.product_id
join product_types pt on p.product_type_id = pt.product_type_id;
我需要使用这三个表
客户表
Customer_ID
First_Name
Last_Name
DOB
Phone
采购表
Product_ID
Customer_ID
Quantity
产品表
Product_ID
Product_Type_ID
Name
Description
Price
产品类型表
Product_Type_ID
Name
如果算术函数应该放在选择外部查询或子查询中,我很困惑我应该将子查询放在哪里(在选择行、来自、拥有或 where 子句中)。我知道有嵌套子查询、相关子查询、多列子查询、多行子查询、单行子查询。顺便说一句,我正在尝试在 Oracle 中执行此操作。这是我的结果的图像,除了我从数量列中删除了总和。另外,更新链接。
(http://i1294.photobucket.com/albums/b618/uRsh3RRaYm0nD/Capture100_zps1f951b07.jpg)
对不起,我忘了包括第四个表,你可以看到有两个名称列,在产品表和产品类型表中。不同之处在于产品表中的“名称”是产品的具体名称,如我的链接所示。产品类型“名称”列是产品的更通用名称,例如书籍、dvds、cds 等。我需要在我的查询中包含产品类型“名称”列而不是产品名称列。因此,最终结果应该看起来像这样
FullName ProductTypeName Price Quantity
John Brown Book Sumof4books 4
John Brown DVD Sumof2DVDs 2
John Brown Magazine Sumof1Mag 1