有用的sql笔记(工作总结)
1、查询当前月(数字为0表示当前月份,1表示上个月,-1表示下个月,以此类推)
SELECT DATE_FORMAT((CURDATE() - INTERVAL [数字] MONTH), '%Y-%m') as `date`

2、添加数据库表字段
ALTER TABLE t_performance_group_plan ADD COLUMN submit_approval_time DATETIME DEFAULT NULL COMMENT '提交审批时间' AFTER financial;
3、insert根据select查询结果进行插入
INSERT INTO t_performance_group_detail (group_id, member_name)
SELECT
tp.`id`,
t1.`nick_name`
FROM
sys_user t1
4、查询结果中根据A字段分组,将B字段合并展示(使用函数 group_concat() )

SELECT
'FNS' AS `source_code`,
CONCAT(`am`.`month_id`, '-out') AS `source_trx_id`,
`am`.`month_id` AS `month_id`,
`ai`.`sp_no` AS `approval_number`,
`tu`.`NAME` AS `applicant_by_name`,
`tu`.`user_code` AS `applicant_by`,
`td`.`dept_name` AS `dept_name`,
`td`.`dept_id` AS `dept_id`,
`ai`.`apply_time` AS `apply_time`,
(
CASE
WHEN (`ai`.`reimburse_type` = 1)
THEN '个人报销'
WHEN (`ai`.`reimburse_type` = 2)
THEN '公司报销'
ELSE NULL
END
) AS `reimburse_type`,
`ai`.`sp_status` AS `sp_status`,
`ai`.`country` AS `country`,
`md`.`dic_value` AS `currency`,
`tpm`.`payment_method_name` AS `payment_method`,
`ft1`.`name` AS `apply_type`,
`ai`.`payee` AS `payee`,
`ai`.`company` AS `company`,
`ai`.`accounting_date` AS `accounting_date`,
`ai`.`accounting_month` AS `accounting_month`,
`am`.`apply_accountid` AS `fee_bear_code`,
`ft2`.`name` AS `fee_type`,
`center`.`costcenter_name` AS `costcenter_name`,
`ft3`.`name` AS `finance_expend_type`,
`am`.`apply_fee` AS `apply_fee`,
IF(
(`ai`.`apply_category` = 1),
`am`.`now_offset_fee`,
0
) AS `writeOffFee`,
`ca`.`pre_sp_no`,
`am`.`tax_rate` AS `tax_rate`,
`am`.`no_tax_money` AS `no_tax_money`,
`am`.`tax_money` AS `tax_money`,
`am`.`invoice_number` AS `invoice_number`,
IF(
(`ai`.`more_invoice` = 0),
`ai`.`transfer_status`,
`am`.`transfer_status`
) AS `transferStatus`,
`am`.`payment_due_date` AS `payment_due_date`,
`am`.`start_time` AS `start_time`,
`am`.`end_time` AS `end_time`,
`am`.`fee_desc` AS `fee_desc`,
`ai`.`is_transfer` AS `is_transfer`,
2 AS `environment`,
`bid`.`batch_id` AS `sync_batch_id`
FROM
`t_accounting_month` `am`
LEFT JOIN `t_apply_info` `ai`
ON `ai`.`sp_no` = `am`.`sp_no`
LEFT JOIN `t_user` `tu`
ON `ai`.`applyer_userid` = `tu`.`USER_ID`
LEFT JOIN `t_dept` `td`
ON `ai`.`applyer_partyid` = `td`.`dept_id`
LEFT JOIN `t_unit` `unit`
ON `ai`.`applyer_accountid` = `unit`.`unit_id`
LEFT JOIN `t_unit_costcenter_map` `center`
ON `am`.`cost_center` = `center`.`costcenter_code`
LEFT JOIN
(SELECT
apply_sp_no,
GROUP_CONCAT(DISTINCT ca.`pre_sp_no`) AS pre_sp_no
FROM
connect_apply ca
WHERE ca.`apply_sp_no` IN
(SELECT
`ai`.`sp_no` AS `approval_number`
FROM
`t_accounting_month` `am`
LEFT JOIN `t_apply_info` `ai`
ON `ai`.`sp_no` = `am`.`sp_no`
LEFT JOIN `t_user` `tu`
ON `ai`.`applyer_userid` = `tu`.`USER_ID`
LEFT JOIN `t_dept` `td`
ON `ai`.`applyer_partyid` = `td`.`dept_id`
LEFT JOIN `t_unit` `unit`
ON `ai`.`applyer_accountid` = `unit`.`unit_id`
LEFT JOIN `t_unit_costcenter_map` `center`
ON `am`.`cost_center` = `center`.`costcenter_code`
LEFT JOIN `m_dictionary` `md`
ON `ai`.`apply_currency` = `md`.`dic_key`
LEFT JOIN `t_payment_method` `tpm`
ON `ai`.`pay_method` = `tpm`.`payment_method_code`
LEFT JOIN `t_batch_id_month` `bid`
ON `bid`.`month` = DATE_FORMAT(`ai`.`accounting_date`, '%Y-%m')
LEFT JOIN `t_fee_type` `ft1`
ON `ft1`.`code` = `ai`.`apply_type`
LEFT JOIN `t_fee_type` `ft2`
ON `ft2`.`code` = `am`.`fee_type`
LEFT JOIN `t_fee_type` `ft3`
ON `ft3`.`code` = `am`.`finance_expend_type`
WHERE (
(`ai`.`sp_status` IN (20, 10, 13))
AND (
`am`.`apply_accountid` NOT IN ('COMPANY', 'FINA')
)
AND (`tu`.`STATUS` = 1)
AND (`am`.`fas_transfer_status` = 0)
AND (
DATE_FORMAT(`ai`.`accounting_date`, '%Y-%m') = "2022-05"
)
)
GROUP BY `ai`.`sp_no`)
AND ca.`status` = 0
AND ca.`pre_type` = 1
GROUP BY ca.`apply_sp_no`) `ca`
ON `ca`.`apply_sp_no` = `ai`.`sp_no`
LEFT JOIN `m_dictionary` `md`
ON `ai`.`apply_currency` = `md`.`dic_key`
LEFT JOIN `t_payment_method` `tpm`
ON `ai`.`pay_method` = `tpm`.`payment_method_code`
LEFT JOIN `t_batch_id_month` `bid`
ON `bid`.`month` = DATE_FORMAT(`ai`.`accounting_date`, '%Y-%m')
LEFT JOIN `t_fee_type` `ft1`
ON `ft1`.`code` = `ai`.`apply_type`
LEFT JOIN `t_fee_type` `ft2`
ON `ft2`.`code` = `am`.`fee_type`
LEFT JOIN `t_fee_type` `ft3`
ON `ft3`.`code` = `am`.`finance_expend_type`
WHERE (
(`ai`.`sp_status` IN (20, 10, 13))
AND (
`am`.`apply_accountid` NOT IN ('COMPANY', 'FINA')
)
AND (`tu`.`STATUS` = 1)
AND (`am`.`fas_transfer_status` = 0)
AND (
DATE_FORMAT(`ai`.`accounting_date`, '%Y-%m') = "2022-05"
)
)
GROUP BY `am`.`month_id`
实际案例
5、查询 | 删除数据表中根据多字段查询存在多条重复数据(删除重复数据,留下id最小的一个)
SELECT * FROM afee a
WHERE (a.fee) IN (SELECT fee FROM afee GROUP BY fee HAVING COUNT(*) > 1)
AND id NOT IN (SELECT MIN(id) FROM afee GROUP BY fee HAVING COUNT(*)>1)
DELETE
FROM
afee
WHERE id IN
(SELECT
res.id
FROM
(SELECT
a.id
FROM
afee a
WHERE (a.fee) IN
(SELECT
fee
FROM
afee
GROUP BY fee
HAVING COUNT(1) > 1)
AND a.id NOT IN
(SELECT
MIN(id)
FROM
afee
GROUP BY fee
HAVING COUNT(1) > 1)) AS res)
注:此种方式删除时,子查询结果应“包一层”,否则会抛出You can't specify target table 'afee' for update in FROM clause错误
6、更新数据库表字段类型
ALTER TABLE t_save_apply_info MODIFY COLUMN all_fee DECIMAL(12,2) COMMENT "总费用";
7、增加字段
alter table 表名 add 字段名 字段类型(长度) comment "备注"
有用的sql笔记(工作总结)的更多相关文章
- SQL 笔记 By 华仔
-------------------------------------读书笔记------------------------------- 笔记1-徐 最常用的几种备份方法 笔记2-徐 收缩数据 ...
- SQL笔记 --- 数据库设计步骤(转)
SQL笔记 --- 数据库设计步骤 目录 总体设计过程需求分析概念结构设计逻辑结构设计数据库物理设计数据库实施数据库运行和维护 总体设计过程 0 » 下一篇:vim 命令集 posted @ 2012 ...
- 三个有用的SQL辅助工具
三个有用的SQL辅助工具 编写人:CC阿爸 2015-1-23 工欲善其事必先利其器,今天在这里,我想与大家一起分享三个有用的SQL辅助工具.有兴趣的同学,可以一同探讨与学习一下,否则就略过吧. 相信 ...
- SQL笔记1:SELECT及SELECT高级应用
T-SQL笔记1:SELECT及SELECT高级应用 本章摘要 1:安装AdventureWorks 2:基本运算符和表达式 3:between 4:like 5:escape 6:TOP 7:G ...
- SQL索引工作原理
SQL 当一个新表被创建之时,系统将在磁盘中分配一段以8K为单位的连续空间,当字段的值从内存写入磁盘时,就在这一既定空间随机保存,当一个8K用完的时候, SQLS指针会自动分配一个8K的空间.这里,每 ...
- 金典 SQL笔记 SQL语句汇总
SELECT * FROM (SELECT ROW_NUMBER() OVER ( ORDER BY id) AS rowN,FNumber, FName,FSalary ,Fage FROM dbo ...
- (2.2)【转】mysql的SQL笔记
一千行 MySQL 详细学习笔记 IT技术思维 4月1日 ↑↑↑点上方蓝字关注并星标⭐「IT技术思维」 一起培养顶尖技术思维 作者:格物 原文链接:https://shockerli.net/post ...
- Head First SQL笔记
看的时候总结了一下,如下: Chapter 1: 创建数据库 CREATE DATABASE database_name; 使用数据库 USE database_name; 创建表 CRATE TAB ...
- 比较有用的sql语句
一.基础 .说明:创建数据库 CREATE DATABASE database-name .说明:删除数据库 drop database dbname .说明:备份sql server --- 创建 ...
- 金典 SQL笔记(6)
page223-索引 --利用SQL 语句创建索引 --CREATE INDEX 索引名称on 表名(字段 ,字段, 字段字段n) --索引名称必须为唯一的,字段 ,字段, 同意一个到多个 --范例为 ...
随机推荐
- #2045:不容易系列之三LELE的RPG难题(dp递推)
Problem Description 人称"AC女之杀手"的超级偶像LELE最近忽然玩起了深沉,这可急坏了众多"Cole"(LELE的粉丝,即"可乐 ...
- 【每日一题】15.Xorto (前缀和枚举)
补题链接:Here 题意:选取任意不重叠的两个区间,使异或结果为 \(0\) 样例:\(1,2,3,4,5,5\) 在样例中我们可以选取 \(1,2,3\) 和 \(5,5\) 就是满足题意 思路:相 ...
- 7 Englishi 词根
1.跟直播,跟复习课,完成作业 2. 基础差加餐,听录播 3.如何听课 4.单词学习反复多次 如何记笔记 语块的汉语意思 单词的记忆方式和固定表达 俩种方式记忆单词 语块关联记忆 基础词根词缀(6节课 ...
- 【调试】kprobes(一)基本概念
简介 开发人员在内核或者模块的调试过程中,往往会需要要知道其中的一些函数有无被调用.何时被调用.执行是否正确以及函数的入参和返回值是什么等等. 比较简单的做法是在内核代码对应的函数中添加日志打印信息, ...
- Transformer的应用
Transformer 写在前面 本学期学习了NLP的课程,本小菜鸡结合做的课设(基于Transformer的英文文档摘要系统的设计与实现),来写一下有关于Transformer的相关内容吧,有问题之 ...
- @RequestParam与@RequestBody使用对比
转载请注明出处: @RequestParam 用来处理Content-Type: 为 application/x-www-form-urlencoded编码的内容. (Http协议中,如果不指定Con ...
- Synchronized的使用及原理总结
本文为博主原创,未经允许不得转载 Synchronized的使用总结: 1.作用 原理 synchronized 的锁膨胀升级过程 对象的内存布局 锁的消除及逃逸分析 synchronized的方 ...
- 百度网盘(百度云)SVIP超级会员共享账号每日更新(2024.01.08)
一.百度网盘SVIP超级会员共享账号 可能很多人不懂这个共享账号是什么意思,小编在这里给大家做一下解答. 我们多知道百度网盘很大的用处就是类似U盘,不同的人把文件上传到百度网盘,别人可以直接下载,避免 ...
- 第二章 VB.NET 绘图基础
GDI+( Graphics Device Interface Plus)是 Windows操作系统用来执行绘画及其他相关图形操作的一套子系统,是由. Net Framework中的System.Dr ...
- 如何让你的.NET WebAPI程序支持HTTP3?
下面我将总结构建Http3的经验,以Token Gateway的项目为例,请注意使用Http3之前你需要知道它的限制, Windows Windows 11 版本 22000 或更高版本/Window ...