基于客户总消费额匹配会员等级并排序的SQL实现(需用子查询)
更新:问题已解决
非常感谢各位的建议。我之前的问题表述不够严谨,会牢记这次的不足,后续提问会避免同类问题,谢谢大家。
已完成的基础查询
目前关联m_member、m_product、t_sales、t_sales_detail、rank共5张数据表,已编写SQL实现按客户维度统计所有订单的总消费额,查询语句如下:
SELECT m.name AS m_name, IFNULL(SUM(d.num * p.price), 0) AS price FROM m_member as m LEFT JOIN t_sales AS t ON m.id = t.m_id INNER JOIN m_product as p LEFT JOIN t_sales_detail as d ON t.id = d.id AND p.id = d.p_id GROUP BY m.id;
该查询的返回结果如下:
'Kawashima', '2620' 'Kawata', '0' 'Yamada', '15420' 'Nagaoku', '500' 'Nagayama', '380'
待实现的新增需求
需要基于等级表的匹配规则,为上述客户匹配对应等级并完成排序。
等级匹配规则
等级表的结构及示例数据如下:
# id, name, low_limit, up_limit '1', 'Pity', '0', '0' '2', 'Bronze', '1', '4999' '3', 'Silver', '5000', '9999' '4', 'Gold', '10000', '999999999'
规则参考:客户Kawashima的总消费额为2620円,按照规则其对应等级应为Bronze。
预期输出格式
最终需要得到的返回结果格式如下:
# name, rank 'Kawata', '<custom message>' 'Nagayama', 'Bronze' 'Nagaoku', 'Bronze' 'Kawashima', 'Bronze' 'Yamada', 'Gold'
实现约束
- 实现该功能的SQL语句需使用子查询。
内容的提问来源于stack exchange,提问作者TeaBubble
相关产品推荐
相关产品推荐

