【发布时间】:2013-09-13 22:39:42
【问题描述】:
我将尝试在这里描述我的问题。假设我有 3 张桌子:
1. 销售
- salesID (PK)
- productID(FK) - 指向已售产品的 FK
- storeID(FK) - 指向销售产品的商店的 FK
- month - 产品销售的月份
- 产品销售年份
- amount - 出售产品的金额(金额)
2. 产品
- 产品ID (PK)
- 产品名称
3. 商店
- storeID (PK)
- 商店名称
我需要以下查询:对于每个商店,显示该商店在指定年份中最畅销的产品。因此结果应该类似于:
STORE PRODUCT AMOUNT
store1 product1 XXX amount
store2 product2 YYY amount
store3 product1 XYX amount
其中每个金额将是当年所有金额的最高总和。
我现在能做的是:
SELECT store.storeName
, product.ProductName
, SUM(sales.ammount)
FROM sales
JOIN product ON sales.productID = product.productID
JOIN store ON sales.storeID = store.storeID
GROUP BY store.storeName
, product.ProductName
WHERE sales.year = 'XXXX'
;
我从每个产品和每个商店中获得一笔款项。在此之后,我可以使用光标逐行遍历整个表格,并检查哪个商店的金额最高。
但我想知道是否可以在“简单”查询中做到这一点?
我正在使用 SQL Developer for Oracle 11g 数据库。 如果有任何帮助,我将不胜感激。
【问题讨论】: