码迷,mamicode.com
首页 > 数据库 > 详细

Sql case when 小例

时间:2016-01-16 12:03:28      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:

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 小例

标签:

原文地址:http://www.cnblogs.com/helkbore/p/5135206.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!