Sql case when 小例

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

如果是等级会员,则还要继续查询等级会员详情表,

时间: 2024-10-12 17:38:41

Sql case when 小例的相关文章

使用libcurl下载文件小例

libcurl是一个很强大的开源网络处理库,支持包括HTTP.HTTPS.FTP--一系列网络协议.用它来进行HTTP的get\post 或者下载文件更是小菜一碟,chrome内核都用到了它,本文主要讲解一个使用curl下载文件的小例. 首先是去下载curl的最新源代码,然后编译成动态库或者静态库:然后把头文件和库文件拿出来加入到我们自己的工程中,引用声明: #include "curl.h" #ifdef _DEBUG #pragma comment(lib, "../De

分享一个Duilib配置的下载器小例

使用DuiLib开发Windows界面实在是太简单了,对于MFC程序员真的是脱离苦海,控件自绘什么的GDI\GDI+真要把人搞死.DuiLib是国内一个非常有名的开源界面库,目前很多软件都是用了它(百度卫士.杀毒.PPS--),感谢开源的前辈们. 扩展列表控件的滚动消息,加上一个定时器,让他可以自动滚动一段再停下来. void CDownloadListUI::DoEvent( TEventUI& event ) { if( !IsMouseEnabled() && event.T

SQL Case 语句的使用

-----简单case 使用 select 学号,姓名, case 专业 when '金融系' then '1' when '材料成型及控制工程' then '2' else '3' end from stu SQL Case 语句的使用,布布扣,bubuko.com

sql case when 用法

sql语言中有没有类似C语言中的switch case的语句?? 没有,用case   when   来代替就行了.            例如,下面的语句显示中文年月         select   getdate()   as   日期,case   month(getdate())     when   11   then   '十一'     when   12   then   '十二'     else   substring('一二三四五六七八九十',   month(getda

新版API WordCount 小例 及如何导入jar包

WordCount: 简单解析wordcount小例子的代码,对应于新版的API进行处理. import java.io.IOException; import java.util.StringTokenizer; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.examples.WordCount.TokenizerMapper; import org.apache.hadoop.fs.Path; im

dwr框架异步调用简单小例

DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架.可以轻松实现用js直接调用java方法. 通过一个小例子来演示一个dwr的基本使用: ①. 首先肯定要创建一个web project的,然后拷贝dwr.jar到WEB-INF\lib目录下 ②. 修改web.xml文件,添加dwr servlet配置 <servlet> <servlet-name>dwr-invoker</servlet-name>

【windows核心编程】IO完成端口(IOCP)复制文件小例

1.演示内容 文件复制 2.提要 复制大文件时,使用FILE_FLAG_NO_BUFFERING标志 同时需要注意: 读写文件的偏移地址为 磁盘扇区 的整数倍 读写文件的字节数为 磁盘扇区 的整数倍 读文件到的缓冲区在进程地址空间中的地址为 磁盘扇区 的整数倍 3.JUST CODING #include "stdafx.h" #include <Windows.h> #include <process.h> #include <iostream>

【windows核心编程】IO完成端口(IOCP)复制文件小例前简单说明

1.关于IOCP IOCP即IO完成端口,是一种高伸缩高效率的异步IO方式,一个设备或文件与一个IO完成端口相关联,当文件或设备的异步IO操作完成的时候,去IO完成端口的[完成队列]取一项,根据完成键(Complete Key)来判断是哪个设备或文件的操作完成,然后再根据实际情况进行处理. 2.相关API 和 数据结构   将一个已完成的IO通知追加到IOCP的[完成队列]中 BOOL   PostQueuedCompletionStatus( HANDLE    hCompletionPort

ORACLE 分页查询sql 小例

//一般的查询sql String sql="select a.id,a.reminddate,a.reminname from  t_remindsettings a where  a.status = 1  order by a.id DESC"; // 分页sql加上(套用)一般查询sql String fenyeSql="select * from (select rownum rn, t1.* from ("+sql+") t1 where ro