当前位置: 首页 > article >正文

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

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

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

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

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

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

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

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'

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

SELECT DISTINCT
	node_name,
	createbyName,
	node_id,

IF (
	createbyName IS NULL,
	' ',
	createbyName
) AS cnm,
 concat(
	node_name,
	':',

IF (
	createbyName IS NULL,
	' ',
	createbyName
)
) AS nb
FROM
	(
		(
			SELECT
				a.node_name,
				a.id,
				node_id
			FROM
				audit_node a
			LEFT JOIN audit_process ap ON a.audit_process_id = ap.id
			WHERE
				ap.form = : type
			AND a.del_flag = 0
			AND a.org_id = '753188220495929344'
			AND a.bottom_display = 1
		) b
		LEFT JOIN (
			SELECT
				audit_node,
				createBy. NAME AS createbyName
			FROM
				audit_record ar
			LEFT JOIN sys_user createBy ON createBy.id = ar.create_by
			WHERE
				document_id = : id
			AND STATUS = 30
		) r ON b.id = r.audit_node
	)

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

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



 concat(
	node_name,
	':',

IF (
	createbyName IS NULL,
	' ',
	createbyName
)
) AS nb

concat

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

出纳付款: 

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

如果没有就为空

那就来讲讲concat函数:

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

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


http://www.kler.cn/a/375496.html

相关文章:

  • 【Java SpringIOC与ID随感录】 基于 XML 的 Bean 装配
  • vue3官方示例-简单的 markdown 编辑器。
  • Unity3D MMORPG游戏服务器之物理模拟系统详解
  • Python进阶 | Django框架数据库与Model之间的关系
  • 谷歌将差异隐私扩展到近 30 亿台设备
  • HTML 文档规范与解析模式:DOCTYPE、<html> 标签以及结构化页面
  • 指定用户开启自启vncserver
  • 深入探讨SEO分析技巧助力网站流量提升
  • linux基础-lvm逻辑卷组分区实操
  • MySql基础:事务
  • Python代码优雅解析PDF文件
  • 游戏和各大APP改IP地址方法教程
  • java控制台打印减法口诀
  • 【机器学习】22. 聚类cluster - K-means
  • python openai API token超限制
  • 测试Bug提交报告模板
  • Linux-期末考试试题8套(含答案)
  • JavaIO流操作
  • BGP路由优选+EVPN
  • npm入门教程6:npm脚本