使用mysql语句检索每个客户购买“豆腐”这个商品的最后一天日期及其销售情况。检索2019年每个客户 购买每个商品的最后一天日期及其销售明细。要求不使用排名函数。
时间: 2024-02-27 12:56:54 浏览: 61
可以使用子查询和连接查询来实现此功能。以下是查询语句:
```mysql
-- 检索每个客户购买“豆腐”这个商品的最后一天日期及其销售情况
SELECT c.name, MAX(o.order_date) AS last_purchase_date, SUM(oi.quantity * oi.price) AS total_sales
FROM customers c
JOIN orders o ON c.customer_id = o.customer_id
JOIN order_items oi ON o.order_id = oi.order_id
JOIN products p ON oi.product_id = p.product_id
WHERE p.product_name = '豆腐'
GROUP BY c.name;
-- 检索2019年每个客户购买每个商品的最后一天日期及其销售明细
SELECT c.name, p.product_name, MAX(o.order_date) AS last_purchase_date, SUM(oi.quantity * oi.price) AS total_sales
FROM customers c
JOIN orders o ON c.customer_id = o.customer_id
JOIN order_items oi ON o.order_id = oi.order_id
JOIN products p ON oi.product_id = p.product_id
WHERE YEAR(o.order_date) = 2019
GROUP BY c.name, p.product_name;
```
以上查询语句中,使用了 `JOIN` 进行表连接, `MAX()` 函数获取每个客户购买每个商品的最后一天日期, `SUM()` 函数计算销售总额, `WHERE` 子句用于筛选出符合条件的数据, `GROUP BY` 子句用于对数据进行分组。注意,查询第二个问题时需要同时对客户和商品进行分组。
阅读全文