计算 活动期间订单满600元并且在活动日期之前超过30天没有下过单

首先拿到这个需求,首先需要明确活动日期区间 10.29-10.31,其次要取这个时间段内某天订单额最高的那天及订单额,再次需要判断这个用户在29号之前下过单,在29号之前的末单日期和10.29号之间的天数间隔大于30天

因此就转化为取两个表日期的问题

1、第一个表取所有用户在10.29号之前的末单日期,末单金额,这个表为主表 后面表left join 它

2、第二个表取活动期间订单额最高的那天(需要嵌套,先把这3天每天金额算出来,group by 用户ID,订单日期 按照用户ID升序 金额降序 再把这个表group by 用户ID 取出金额最高的这天)

3、然后第二个表left join 第一个表 以用户ID相等为条件

SELECT c.城市,c.用户ID,d.用户名称,d.用户地址,d.联系电话,c.销售员,c.订单日期,c.订单额,c.标识,c.上次订单日期 AS 29号之前末单日期,c.上次金额 AS 29号之前末单金额,e.第几天次 AS 29号之前末单为第几天次,c.上次下单距离29号相差天数 AS 29号之前末单日期距离29号相差天数
FROM (
SELECT a.*,b.订单日期,b.订单额
,CASE WHEN b.销售员 IS NULL THEN a.上次销售员 ELSE b.销售员 END AS 销售员
,CASE WHEN b.订单日期 IS NOT NULL AND b.订单额>=600 THEN ">=600" WHEN b.订单日期 IS NOT NULL AND b.订单额<600 THEN "<600" ELSE "10.29号到11.1号未下单" END AS 标识
,TIMESTAMPDIFF(DAY,a.上次订单日期,"2016-10-29")AS 上次下单距离29号相差天数
FROM (#取所有用户10.29号之前最后一次订单日期
SELECT a2.城市,a2.用户ID,a2.订单日期 AS 上次订单日期,a2.销售员 AS 上次销售员,a2.金额 AS 上次金额
FROM (
SELECT a1.城市,a1.用户ID,DATE(a1.订单日期) AS 订单日期,SUM(金额) AS 金额,a1.销售员
FROM `a003_order` AS a1
WHERE a1.城市='长春' AND a1.订单日期<"2016-10-29" AND a1.金额>0#取完各用户
GROUP BY a1.用户ID,DATE(a1.订单日期)
ORDER BY a1.用户ID,DATE(a1.订单日期) DESC
) AS a2
GROUP BY a2.用户ID
) AS a
LEFT JOIN (#用户在10.29到11.01订单额最高的一天
SELECT b2.用户ID,b2.订单日期,b2.销售员,b2.订单额
FROM (
SELECT b1.用户ID,DATE(b1.订单日期) AS 订单日期,b1.销售员,SUM(b1.金额) AS 订单额
FROM `a003_order` AS b1
WHERE b1.城市="长春" AND b1.订单日期>="2016-10-29" AND b1.订单日期<"2016-11-01" AND b1.金额>0
GROUP BY b1.用户ID,DATE(b1.订单日期)
ORDER BY b1.用户ID,SUM(b1.金额) DESC
) AS b2
GROUP BY b2.用户ID
) AS b ON a.用户ID=b.用户ID
) AS c
LEFT JOIN `a001_resterant`AS d ON d.用户ID=c.用户ID
LEFT JOIN `tb003_08` AS e ON e.用户ID=c.用户ID AND e.上次订单日期=c.上次订单日期
WHERE c.上次下单距离29号相差天数>=30 AND c.标识=">=600"

MySQL活动期间订单满600元并且在活动日期之前超过30天没有下过单_20161030的更多相关文章

  1. MySQL_活动期间单笔订单最高的且满600元 判别是重激活客户还是10月注册客户_20161031

    将29号和30号两个需求放到一个表当中 首先都满足在10.29到31号之间单笔订单最高的且满600元 数据结构为一个用户一个订单ID 一行一行的 上面是第一个表 我们当做主表 a 第二个表 我们找注册 ...

  2. MySQL活动期间制定月份注册用户下单情况_20161029

    在10.29到10.31号期间 10月新注册的用户订单金额满600元赠与优惠券 #3天内订单满600元且10月注册的用户订单明细 SELECT a.城市,a.用户ID,b.用户名称,DATE(b.注册 ...

  3. MySQL 单笔订单满6个及以上产品且金额>=300赠送优惠券_20161103

    活动内容: 单笔订单满6个及以上产品(帽子.浴巾除外),金额满赠300元,即赠送300-10元(除帽子.浴巾外)优惠券一张.需求数据:满足条件的用户ID活动时间:11.2-11.5(4天)活动规则:① ...

  4. MySQL_杭州北仓 12.3-12.7需求活动期间累计下单达到3天及以上的客户_20161212

    #C025_02杭州北仓 12.3-12.7需求活动期间累计下单达到3天及以上的客户明细 SELECT d.*,CASE WHEN 下单天次>=3 THEN "下单超过3天" ...

  5. Shopex4.85商派2014年商业模板和商业插件共600多套仅售600元送分销王2代SEO排名神具。

    这批shopex商业插 件+模板都是本人从官方模板网站收购.高价.交换.以及收藏得来.本人因现实工作太忙不得不转手出售这批源代码,限时低价出售给和我一样从事shopex 系统网店电子商务的兄弟姐妹们, ...

  6. 绝杀600元以下智能手机的夏新小V二代-专栏-速途网

    绝杀600元以下智能手机的夏新小V二代-专栏-速途网 绝杀600元以下智能手机的夏新小V二代

  7. (折扣计算)需求说明:普通顾客购物满100元打9折;会员购物打8折;会员购物满200元打7.5折(判断语句if-else和switch语句的嵌套结

    package com.summer.cn; import java.util.Scanner; /** * @author Summer *折扣计算 需求说明:普通顾客购物满100元打9折:会员购物 ...

  8. 解决Mysql连接池被关闭 ,hibernate尝试连接不能连接的问题。 (默认mysql连接池可以访问的时间为8小时,如果超过8小时没有连接,mysql会自动关闭连接池。系统发布第二天访问链接关闭问题。

    解决Mysql连接池被关闭  ,hibernate尝试连接不能连接的问题. (默认MySQL连接池可以访问的时间为8小时,如果超过8小时没有连接,mysql会自动关闭连接池. 所以系统发布第二天访问会 ...

  9. 8月30号周五香港接单ING~~化妆品只加10元!!!!!!

    8月30号周五香港接单ING~~化妆品只加10元!!!!!! 8月30号周五香港接单ING~~化妆品只加10元!!!!!!

随机推荐

  1. swift菜鸟入门视频教程-05-控制流

    本人自己录制的swift菜鸟入门.欢迎大家拍砖.有什么问题能够在这里留言. 主要内容: For 循环 While 循环 条件语句 控制转移语句(Control Transfer Statements) ...

  2. HDFS源码分析心跳汇报之整体结构

    我们知道,HDFS全称是Hadoop Distribute FileSystem,即Hadoop分布式文件系统.既然它是一个分布式文件系统,那么肯定存在很多物理节点,而这其中,就会有主从节点之分.在H ...

  3. C语言序列点问题总结(大多数高等教育C语言教学课程的漏洞)

    C语言序列点总结 2013年11月21于浙大华家池 C 语言副作用: (side effect)是指对数据对象或者文件的修改. 例如,语句 v = 99;的副作用是把 v 的值修改成 99. C语言序 ...

  4. bugzilla 系列1安装

    安装好mysql yum install gcc perl* mod_perl-devel -y wget https://ftp.mozilla.org/pub/mozilla.org/webtoo ...

  5. tomcat端口问题

    https://segmentfault.com/q/1010000008858162?_ea=1777730

  6. 九度OJ 1166:迭代求立方根 (迭代)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3695 解决:1700 题目描述: 立方根的逼近迭代方程是 y(n+1) = y(n)*2/3 + x/(3*y(n)*y(n)),其中y0 ...

  7. 九度OJ 1069:查找学生信息 (排序、查找)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:11240 解决:3024 题目描述: 输入N个学生的信息,然后进行查询. 输入: 输入的第一行为N,即学生的个数(N<=1000) 接 ...

  8. php soap使用示例

    soap_client.php <?php try { $client = new SoapClient( null, array('location' =>"http://lo ...

  9. 使用Fiddler测试HTTP接口

    Fiddler下载地址:https://www.telerik.com/download/fiddler/fiddler4 在测试http接口前,为避免干扰,我们启用过滤器 然后运行过滤器设置 我们以 ...

  10. 题解 P3389 【【模板】高斯消元法】

    题解 P3389 [[模板]高斯消元法] 看到大家都没有重载运算符,那我就重载一下运算符给大家娱乐一下 我使用的是高斯-约旦消元法,这种方法是精度最高的(相对地) 一句话解释高斯约旦消元法: 通过加减 ...