统计商户id=1的全部店铺的收入,没有订单的店铺设置为0,统计的订单条件为o.del_flag = '0' and o.order_logo = '',展示出店铺名称、统计的总金额,按降序排序
时间: 2023-11-22 12:52:58 浏览: 162
模拟公司网上订单的统计系统。
根据你提供的信息,可以写出以下 SQL 语句:
```
SELECT s.shop_name, COALESCE(SUM(o.order_amount), 0) AS total_income
FROM shop s LEFT JOIN orders o ON s.shop_id = o.shop_id AND o.del_flag = '0' AND o.order_logo = ''
WHERE s.mch_id = 1
GROUP BY s.shop_id
ORDER BY total_income DESC;
```
解释一下这个 SQL 语句:
1. 首先,我们要查询商户 id 为 1 的全部店铺的收入,所以从 `shop` 表中选择 `mch_id` 为 1 的记录。
2. 我们需要统计每个店铺的收入,因此需要关联 `orders` 表。使用 `LEFT JOIN` 是为了包括那些没有订单的店铺。
3. 根据题目要求,只统计 `del_flag` 为 0 且 `order_logo` 为空的订单,因此在关联 `orders` 表时需要加上这个条件。
4. 使用 `COALESCE` 函数是为了将没有订单的店铺的收入设置为 0。
5. 最后按照统计的总金额进行降序排序。
希望这个 SQL 语句能够帮到你!
阅读全文