SELECT I.uname,

C.consume,

O.name,O.dis_count,O.memberType,

D.name,D.dis_count,D.up,D.down,

CASE

WHEN D.dis_count IS NULL THEN O.dis_count

ELSE D.dis_count

END AS discount

FROM (

sdb_membermanage_members AS I

LEFT JOIN sdb_membermanage_moneyanddiscount AS C

ON I.member_id = C.member_id

)

LEFT JOIN (

sdb_membermanage_member_lv AS O

LEFT JOIN sdb_membermanage_lv_detail AS D

-- using (member_lv_id)

ON O.member_lv_id = D.member_lv_id

)

ON I.member_lv_id = O.member_lv_id

WHERE O.memberType = '1'

OR (O.memberType = '0'

AND C.consume >= D.down

AND C.consume < D.up

)

解释一下, 目的是 根据会员id 查询出会员的折扣.

涉及到的表: 会员表,会员消费表,会员等级表,会员等级详情表

会员等级表有两种类型的会员,自定义会员和等级会员.会员等级详情

会员等级表里的等级会员是一整套的会员方案 类似于京东的金牌银牌,淘宝的钻石皇冠(即,金牌会员 和银牌会员 的会员等级id相同,具体区别在会员等级详情表里)

会员表里存了 会员消费表表id, 会员等级id

如果是等级会员,则还要继续查询等级会员详情表,根据消费金额计算出消费区间属于哪个等级详情,取出折扣.

Sql case when 小例的更多相关文章

  1. C#中??和?分别是什么意思? 在ASP.NET开发中一些单词的标准缩写 C#SESSION丢失问题的解决办法 在C#中INTERFACE与ABSTRACT CLASS的区别 SQL命令语句小技巧 JQUERY判断CHECKBOX是否选中三种方法 JS中!=、==、!==、===的用法和区别 在对象比较中,对象相等和对象一致分别指的是什么?

    C#中??和?分别是什么意思? 在C#中??和?分别是什么意思? 1. 可空类型修饰符(?):引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空.例如:string str=null; ...

  2. 使用libcurl下载文件小例

    libcurl是一个很强大的开源网络处理库,支持包括HTTP.HTTPS.FTP……一系列网络协议.用它来进行HTTP的get\post 或者下载文件更是小菜一碟,chrome内核都用到了它,本文主要 ...

  3. linux 命令小例

    xargs示例: ls |xargs -i mv {}  /opt find示例: find -mtime +n -name “*.avi” -type f -exec rm {} \; find - ...

  4. Ubuntu13.04 Eclipse下编译安装Hadoop插件及使用小例

    Ubuntu13.04 Eclipse下编译安装Hadoop插件及使用小例 一.在Eclipse下编译安装Hadoop插件 Hadoop的Eclipse插件现在已经没有二进制版直接提供,只能自己编译. ...

  5. SQL case when 的使用总结

    在网上看到一篇关于case when语句的博客,写得很好,我这里是摘录的,还有我的一些体会,原博客地址:SQL Case when 的使用方法. Case具有两种格式.简单Case函数和Case搜索函 ...

  6. 動態SQL運用實例

    動態SQL運用實例 語法8.1.6之前: EXECUTE IMMEDIATE dynamic_sql_string [INTO {define_var1 [, define_var2] ... | p ...

  7. webpack -- 多页面简单小例

    有时单页面并不能满足我们的业务需求,就需要去构建多页面应用,以下为简单小例: entry:{ index:'./src/module/index/index.js', student:'./src/m ...

  8. [libpng]CMake+VS2015下编译libpng,及使用小例

    编译前的工作 在编译libpng前,需要把zlib编译好,并加载到编译环境里. CMake + VS2015 下编译zlib,及使用小例 下载与解压 libpng的官网是 http://www.lib ...

  9. sql case when 多条件小结

    sql case when 多条件 小结 -- 第一种 格式 : 简单Case函数 : -- 格式说明 -- case 列名 -- when 条件值1 then 选择项1 -- when 条件值2 t ...

随机推荐

  1. 清空oracle数据库

    在开发过程中,可能经常需要重新初始化数据库,在初始化之前,我们肯定希望不再有以前的老表.存储过程等用户对象,用下面的教本就可以做到这一点: BEGIN FOR rec IN (SELECT objec ...

  2. hdu6076 Security Check 分类dp 思维

    /** 题目:hdu6076 Security Check 链接:http://acm.hdu.edu.cn/showproblem.php?pid=6076 题意:有两个队列在排队,每一次警察可以检 ...

  3. ArcGIS教程:“流向”的工作原理

    获取表面的水文特征的关键之中的一个是可以确定从栅格中的每一个像元流出的方向.这可通过流向工具来完毕. 该工具把表面作为输入,然后输出一个显示从每一个像元流出方向的栅格. 假设选择了输出下降率栅格数据选 ...

  4. 分析kube-proxy的iptables规则

    NodePort service 创建一个mysql的NodePort服务,对应两个pod实例,rc和service的配置如下: 1.rc配置 apiVersion: v1 kind: Replica ...

  5. js删除数组中某一项,splice()

    ' ","childTagName":"高中"}, {","childTagName":"初中"}] ...

  6. Collection 和 Collections的区别?

    Collection 和 Collections的区别? 解答:Collection是java.util下的接口,它是各种集合的父接口,继承于它的接口主要有Set 和List:Collections是 ...

  7. 网络I/O:Socket→RMI

    ★Socket Socket编程可能大家都很熟,所以就不多讨论了,只是说通过socket把数据保存到远端服务器或从网络socket读取数据也不失为一种值得考虑的方式. ★RMI RMI机制其实就是RP ...

  8. 再谈Unity调用Android的Activity

    这段时间在研究Unity4.3开发环境下.怎样调用由Android SDK4.4.2写的Activity.參考了非常多网上的博客.百度出了几十篇大部分都是转载雨松MOMO的,这里必须向雨松MOMO表示 ...

  9. js计算百分比

    function GetPercent(num, total) { /// <summary> /// 求百分比 /// </summary> /// <param na ...

  10. SurvivalShooter学习笔记(二.玩家移动旋转)

    该案例中:(PC端操作) 1.玩家移动输入控制通过虚拟轴Axis,旋转输入控制通过鼠标位置: 2.玩家始终面朝鼠标停留点,鼠标停留点通过摄像机朝地面的射线获取: 3.玩家待机移动状态切换通过Anima ...