【进阶sql】复杂sql收集及解析【mysql】

server/2024/11/29 3:50:17/

开发时会出现,必须写一些较复杂sql的场景

可能是给会sql的客户 提供一些统计sql

或是临时需要统计数据信息但是 开发一个统计功能有来不及的情况

也可能是报表系统组件 只支持 sql统计的情况

特地记录下这些sql 作为积累

substring 截取查询出的字符串,用于截取文件名这种把 没必要的.后缀取掉等

sql">select epa.*,epaf.*,substring(epa.voucher_file,11,INSTR(epa.voucher_file,',')-12) as files,
case when epa.payment_status =1 then '未支付'when epa.payment_status =2 then '已支付'
end as pm,
case when epa.is_backlog =0 then '已同意'when epa.is_backlog =1 then ''
end as blog,
case when epa.insurance_type ='1' then '甲类'when epa.insurance_type ='2' then '乙类'when epa.insurance_type ='3' then '丙类'when epa.insurance_type ='4' then '基药'when epa.insurance_type ='5' then '非基药'
end as intype,
case when epa.payment_method ='1' then '电汇'when epa.payment_method ='2' then '支票'when epa.payment_method ='3' then '承兑'
end as pyType from erp_purchase_advance epa left join erp_purchase_advance_form epaf on epa.id =epaf.advance_id where epa.del_flag ='0' and epa.id =:id and epa.org ='753188220495929344'

通过()让查询结果成为一个临时结果表

sql">SELECT DISTINCTnode_name,createbyName,node_id,IF (createbyName IS NULL,' ',createbyName
) AS cnm,concat(node_name,':',IF (createbyName IS NULL,' ',createbyName
)
) AS nb
FROM((SELECTa.node_name,a.id,node_idFROMaudit_node aLEFT JOIN audit_process ap ON a.audit_process_id = ap.idWHEREap.form = : typeAND a.del_flag = 0AND a.org_id = '753188220495929344'AND a.bottom_display = 1) bLEFT JOIN (SELECTaudit_node,createBy. NAME AS createbyNameFROMaudit_record arLEFT JOIN sys_user createBy ON createBy.id = ar.create_byWHEREdocument_id = : idAND STATUS = 30) r ON b.id = r.audit_node)

配合需求查看。是根据这个配置 底部显示的

去获取 已经审核完成的任务 审核人 所以要 关联 audit_record 审核记录表

sql">concat(node_name,':',IF (createbyName IS NULL,' ',createbyName
)
) AS nb

concat

用到了concat()函数,拼接生成语句

出纳付款: 

后面if 如果该节点审核结束就会有审核人

如果没有就为空

那就来讲讲concat函数:

使用方法:CONCAT(str1,str2,…) 

返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。


http://www.ppmy.cn/server/137652.html

相关文章

JavaScript网页设计案例:智慧社区可视化大屏的实现

智慧社区作为城市智能化的重要体现,通过数据可视化大屏能够直观地展示社区内的各种信息,提高管理效率和居民生活质量。本文将详细介绍如何使用JavaScript结合HTML和CSS开发一个智慧社区可视化大屏的案例。 项目背景 智慧社区可视化大屏主要用于展示社区…

Lucene数据写入流程

Lucene数据写入及倒排数据缓存组织是一个复杂但有序的过程,它涉及到多个组件和内存结构的高效利用。以下是对Lucene数据写入和倒排数据缓存组织的详细解析。 Lucene数据写入流程 Lucene的数据写入流程主要涉及到文档的创建、索引的添加以及最终写入磁盘的过程。以…

Android 利用责任链模式来实现 解析不同的json对象

1. 创建解析类 class WebSocketParserChain {private val parsers mutableListOf<WebSocketDataParser>()fun addParser(parser: WebSocketDataParser): WebSocketParserChain {parsers.add(parser)return this}fun parse(text: String): WebSocketResponseBaseBean<…

从0到1搭建flink程序-WordCount(图文/详细/mac)

目录 一、目标以及前置资料 1.1 目标 1.2 前置资料 二、实现 2.1 搭建流程 2.2 调试 参考 一、目标以及前置资料 1.1 目标 初步感受flink任务&#xff0c;从0到1快速搭建一个flink程序 1.2 前置资料 1、下载jdk&#xff1a;Mac 安装jdk_mac 安装jdk 1.8-CSDN博客 2、…

vue 果蔬识别系统百度AI识别vue+springboot java开发、elementui+ echarts+ vant开发

编号&#xff1a;R03-果蔬识别系统 简介&#xff1a;vuespringboot百度AI实现的果蔬识别系统 版本&#xff1a;2025版 视频介绍&#xff1a; vuespringboot百度AI实现的果蔬识别系统前后端java开发&#xff0c;百度识别&#xff0c;带H5移动端&#xff0c;mysql数据库可视化 1 …

Nginx负载均衡配置详解

Nginx 是一个高性能的 HTTP 和反向代理服务器&#xff0c;广泛用于负载均衡。它支持多种负载均衡策略&#xff0c;可以根据不同的需求进行配置。以下是 Nginx 负载均衡的详细配置和使用示例。 一、负载均衡基本概念 负载均衡是将请求分配到多个后端服务器上&#xff0c;以提高…

【Git】Git常用命令

目录 1 前言2 git命令2.1 branch2.2 checkout2.3 pull and push2.4 config2.4.1 Proxy 2.5 tag2.6 rebase2.7 patch2.8 remote2.9 submodule2.10 rm2.10 gitignore2.11 某个commit更改了哪些文件2.12 clean 3 结束语 1 前言 本章记录总结在使用git过程中常用的一些命令&#x…

适合视频搬运的素材网站推荐——短视频素材下载宝库

对于摄影爱好者和短视频创作者来说&#xff0c;找到适合搬运和创作的视频素材至关重要。无论是用于丰富画面、增加背景细节&#xff0c;还是提升作品的视觉吸引力&#xff0c;这些素材网站都能为你的创作提供极大帮助。今天&#xff0c;我将为大家推荐几个优质的素材网站&#…