SELECT qr_cash_record.*,
CASE
WHEN cashrecord_type = 3 THEN
(SELECT product_title FROM qr_fundsupport LEFT JOIN qr_fundplan
ON fundplan_id = fundsupport_ref_fundplanid LEFT JOIN qr_product
ON product_id = fundplan_ref_productid WHERE fundsupport_id = cashrecord_ref_id )
WHEN cashrecord_type = 4 THEN
(SELECT product_title FROM qr_fundplan
LEFT JOIN qr_product
ON product_id = fundplan_ref_productid
WHERE fundplan_id = cashrecord_ref_id )
ELSE
(SELECT product_title FROM qr_touristorder
LEFT JOIN qr_product ON product_id = touristorder_ref_productid
WHERE touristorder_id = cashrecord_ref_id )
END AS product_title,

CASE
WHEN cashrecord_type = 3 THEN
(SELECT product_id FROM qr_fundsupport LEFT JOIN qr_fundplan
ON fundplan_id = fundsupport_ref_fundplanid LEFT JOIN qr_product
ON product_id = fundplan_ref_productid WHERE fundsupport_id = cashrecord_ref_id )
WHEN cashrecord_type = 4 THEN
(SELECT product_id FROM qr_fundplan
LEFT JOIN qr_product
ON product_id = fundplan_ref_productid
WHERE fundplan_id = cashrecord_ref_id )
ELSE
(SELECT product_id FROM qr_touristorder
LEFT JOIN qr_product ON product_id = touristorder_ref_productid
WHERE touristorder_id = cashrecord_ref_id )
END AS product_id,
CASE
WHEN cashrecord_type = 3 THEN
(SELECT product_type FROM qr_fundsupport LEFT JOIN qr_fundplan
ON fundplan_id = fundsupport_ref_fundplanid LEFT JOIN qr_product
ON product_id = fundplan_ref_productid WHERE fundsupport_id = cashrecord_ref_id )
WHEN cashrecord_type = 4 THEN
(SELECT product_type FROM qr_fundplan
LEFT JOIN qr_product
ON product_id = fundplan_ref_productid
WHERE fundplan_id = cashrecord_ref_id )
ELSE
(SELECT product_type FROM qr_touristorder
LEFT JOIN qr_product ON product_id = touristorder_ref_productid
WHERE touristorder_id = cashrecord_ref_id )
END AS product_type,

CASE
WHEN cashrecord_type = 3 THEN
(SELECT fundplan_ref_userid FROM qr_fundsupport LEFT JOIN qr_fundplan
ON fundplan_id = fundsupport_ref_fundplanid
WHERE fundsupport_id = cashrecord_ref_id )
WHEN cashrecord_type = 4 THEN
(SELECT fundplan_ref_userid FROM qr_fundplan
WHERE fundplan_id = cashrecord_ref_id )
ELSE
(SELECT touristorder_ref_grideorderid FROM qr_touristorder
WHERE touristorder_id = cashrecord_ref_id )
END AS ref_user_id,

CASE
WHEN cashrecord_type = 3 THEN
(SELECT auth_realname FROM qr_fundsupport LEFT JOIN qr_fundplan
ON fundplan_id = fundsupport_ref_fundplanid
LEFT JOIN qr_userauth ON auth_ref_userid = fundplan_ref_userid
WHERE fundsupport_id = cashrecord_ref_id AND auth_type=0 AND auth_limitstate=2 )
WHEN cashrecord_type = 4 THEN
(SELECT auth_realname FROM qr_fundplan
LEFT JOIN qr_userauth ON auth_ref_userid = fundplan_ref_userid
WHERE fundplan_id = cashrecord_ref_id AND auth_type=0 AND auth_limitstate=2 )
ELSE
(SELECT auth_realname FROM qr_touristorder
LEFT JOIN qr_userauth ON auth_ref_userid = touristorder_ref_grideorderid
WHERE touristorder_id = cashrecord_ref_id AND auth_type=0 AND auth_limitstate=2 )
END AS ref_user_realname

FROM qr_cash_record;

MYSQL CASE WHEN THEN END 用法的更多相关文章

  1. MySQL中case when的基本用法总结

    MySQL中case when的基本用法总结原创Backcanhave7 最后发布于2018-12-06 15:14:15 阅读数 439 收藏展开MySQL中的case when有用两种用法,官方文 ...

  2. MySQL case when then 用法

    下面演示一下MYSQL中的CASE WHEN THEN的用法. 一. SELECT MENU_NAME, YXBZ, case YXBZ when 'Y' then '开放' when 'N' the ...

  3. Mysql coalesce()函数认识和用法

    Mysql coalesce()函数认识和用法   coalesce()解释:返回参数中的第一个非空表达式(从左向右):    鉴于在mysql中没有nvl()函数, 我们用coalesce()来代替 ...

  4. mysql中INSTR函数的用法

    mysql中INSTR函数的用法 INSTR(字段名, 字符串) 这个函数返回字符串在某一个字段的内容中的位置, 没有找到字符串返回0,否则返回位置(从1开始) SELECT * FROM tblTo ...

  5. MySQL中INSERT的一般用法

    原文链接:http://www.blogjava.net/midnightPigMan/archive/2014/12/15/421406.html MySQL中INSERT的一般用法 INSERT语 ...

  6. mysql 中find_in_set()和in()用法比较

    mysql 中find_in_set()和in()用法比较 在mysql中in可以包括指定的数字,而find_in_set()用于特定的数据类型. find_in_set 函数使用方法 个例子来说:有 ...

  7. 阳性比例 mysql CASE UNION ALL

    阳性比例 mysql CASE UNION ALL SELECT t.*,t.type_0/all_ FROM ( SELECT FROM_UNIXTIME(create_time,'%Y-%m-%d ...

  8. MYSQL DATE_FORMAT参数列表及用法

    MYSQL DATE_FORMAT参数列表及用法 主要涉及用法 DATE_SUB(DATE, INTERVAL EXPR TYPE) DATE_FORMAT(DATE,FORMAT) REPLACE( ...

  9. MySQL基础之STRAIGHT JOIN用法简介

    MySQL基础之STRAIGHT JOIN用法简介 引用mysql官方手册的说法: STRAIGHT_JOIN is similar to JOIN, except that the left tab ...

随机推荐

  1. Redis数据迁移方案

    场景 Redis实例A ---> Redis实例B,整库全量迁移 方案一: mac环境 brew install npm npm install redis-dump -g 针对RedisA: ...

  2. python之pymysql模块学习(待完善...)

    pymysql介绍 pymysql是在python3.x版本中用于连接mysql服务器的一个库.python2中则使用mysqldb. 安装方法: pip install pymysql 使用实例: ...

  3. php调试之路

    解析php中die(),exit(),return的区别 die()停止程序运行,输出内容exit是停止程序运行,不输出内容return是返回值die是遇到错误才停止exit是直接停止,并且不运行后续 ...

  4. Android 学习笔记之 Actionbar作为回到上一级

    首先,给Actionbar添加返回图标: 代码: @Override protected void onCreate(Bundle savedInstanceState) { super.onCrea ...

  5. 用pl/sql游标实现约瑟夫环

    什么是约瑟夫环: 约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围.从编号为1的人开始报数,数到m的那个人出列:他的下一个人又从1开始报数, ...

  6. java 基础知识一 初识java

    java  基础知识一初识java 1.java语言的特点 (1)简洁有效(2)可移植性(3)面向对象(4)解释型(5)适合分布式计算 2.java的源文件扩展名为.java 编译后的扩展名为.cla ...

  7. python css概述

    1. 概述 css是英文Cascading Style Sheets的缩写,称为层叠样式表,用于对页面进行美化. 存在方式有三种:元素内联.页面嵌入和外部引入,比较三种方式的优缺点. 语法:style ...

  8. 【redis专题(8)】命令语法介绍之通用KEY

    select num 数据库选择 默认有16[0到15]个数据库,默认自动选择0号数据库 move key num 移动key到num服务器 del key [key ...] 删除给定的一个或多个 ...

  9. Vxlan与网卡offload性能

    背景 由于数据链路层MTU的限制,发送端TCP/UDP数据在交付到IP层时需要与MTU相匹配,TCP数据不能超过mss,较长的UDP需要分片(Fragmentation)以满足MTU要求:接收端协议栈 ...

  10. APP自识别安卓苹果

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...