以下是我对今日销售报告的查询,该报告工作正常
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或手机号码,如果有过去几天的记录,那么这意味着客户重复,如果没有他的名字或手机的记录,则意味着客户是新的
答案 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