来自回头客VS VS新客户的今日销售报告(Mysql)

时间:2017-03-14 10:44:21

标签: mysql select subquery repeat sales

以下是我对今日销售报告的查询,该报告工作正常

SELECT SUM( total_price ) AS total FROM basket LEFT JOIN `orders` ON basket.order_id=orders.order_id WHERE orders.date_added BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 1 day)

现在我需要另一个查询来了解今天的销售额来自返回客户的数量(我在Orders表中有Mobile列,这对每个客户来说都是唯一的,我们可以依靠它来了解该客户是否有以前的购买记录)

让我解释为什么我必须使用移动列,我的数据库没有客户表,这是电子商务平台中常见的,正常情况是有customer表有唯一的customer_id列,所以这个customer_id应该用于订单表以向客户分配订单。在我的平台上,因为我没有这个列,了解客户是新的还是返回的唯一方法是在Orders表中检查他的full_name或手机号码,如果有过去几天的记录,那么这意味着客户重复,如果没有他的名字或手机的记录,则意味着客户是新的

1 个答案:

答案 0 :(得分:0)

我不知道Mobile列包含哪些内容,但它的条件聚合效果如下

SELECT SUM( total_price ) AS total,
       SUM(case when Mobile is not null then total_price else 0 end ) AS fromReturning
FROM basket
LEFT JOIN `orders` ON basket.order_id=orders.order_id 
WHERE country='ae' 
AND orders.date_added BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 1 day) 
AND orders.delivery_status <> -1