【发布时间】:2018-09-02 23:29:16
【问题描述】:
我通过解决以下任务遇到问题:
'显示每个卖家在 2013 年通过销售 PS4 产品赚了多少钱(数量 * product_price)'
关系是:
seller(id , seller_name, advertised_by);
product( id, product_name, product_price);
sale(id, seller_id, product_id, quantity, date);
我插入了以下数据:
INSERT into seller VALUES
(1,'Bob',NULL),
(2,'Mary',1),
(3,'Peter',1),
(4,'Parker',1),
(5,'Jeff',1);
INSERT INTO product VALUES
(1,'PS4',100),
(2,'XBOX One',300),
(3,'Laptop',500);
INSERT INTO sale VALUES
(1,1,1,1,'4 5 2013'),
(2,2,1,2,'5 6 2013'),
(3,3,1,3,'6 6 2013'),
(4,4,1,4,'6 6 2013');
我知道不使用外键或使用 varchar 作为日期不好,但我希望示例简单。
SELECT seller.id,seller.seller_name, (sale.quantity * product.price) AS sale
FROM seller,product,sale
WHERE product.id = sale.product_id
AND product.product_name = 'PS4'
AND sale.date like '%2013'
GROUP by seller.id;
我知道我必须使用 GROUP BY,但按 Seller.id 分组不起作用。
【问题讨论】:
-
不要使用旧式加入,也不会将卖家与销售联系起来