有用的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) --索引名称必须为唯一的,字段 ,字段, 同意一个到多个 --范例为 ...
随机推荐
- HDU - 2181 :哈密顿绕行世界问题
Descriptions: 一个规则的实心十二面体,它的 20个顶点标出世界著名的20个城市,你从一个城市出发经过每个城市刚好一次后回到出发的城市. Input 前20行的第i行有3个数,表示与第i个 ...
- Codeforces Round #663 (Div. 2) (A~C题,C题 Good)
比赛链接:Here 1391A. Suborrays 简单构造题, 把 \(n\) 放最前面,接着补 \(1\) ~ \(n - 1\) 即可 1391B. Fix You \((1,1)\) -&g ...
- 高级数据结构---B树和B+树及mysql索引分析
mysql索引数据结构:https://www.cnblogs.com/nijunyang/p/11406688.html 几种树结构的对比: 二叉查找树:二叉搜索树,二叉排序树,优点查找快,但是在某 ...
- 【驱动】SPI驱动分析(五)-模拟SPI驱动
简介 模拟SPI驱动是一种软件实现的SPI总线驱动.在没有硬件SPI控制器的系统中,通过软件模拟实现SPI总线的功能.它允许在不修改硬件的情况下,通过GPIO(通用输入/输出)引脚模拟SPI总线的通信 ...
- TICK 中Kapacitor功能和使用说明
转载请注明出处: 1.Kapacitor 简介 Kapacitor是InfluxData公司开发的一个实时流数据处理引擎.它可以实时地通过TICK脚本处理InfluxDB中的流数据以及批处理数据. K ...
- idea开发常用快捷键总结
转载请注明出处: idea提供了很多的快捷键,但在开发过程中并发全用,只是常用部分快捷键,在这里总结一下,总结的不全,有好的快捷键可在评论里补充下,提前谢各位 由于很早之前用的eclipse或spri ...
- Nacos源码 (3) 注册中心
本文将从一个服务注册示例入手,通过阅读客户端.服务端源码,分析服务注册.服务发现原理. 使用的2.0.2的版本. 客户端 创建NacosNamingService对象 NacosNamingServi ...
- 安装MicroStation软件、Terrasolid插件的方法
本文介绍在Win10电脑中,安装MicroStation软件与Terrasolid插件合集的详细方法. 首先,我们需要有MicroStation软件与Terrasolid插件合集的安装包:这些 ...
- pybind11
fatal error: Python.h: no such file or directory 在使用pybind11时,如果不做调整可能就会出现这样的情况,Python.h一般出现在usr/inc ...
- [转帖]Nginx中absolute_redirect、port_in_redirect配置简述
一.背景: 我们在访问nginx代理下的项目前端页面时,经常会有访问链接最末尾带不带'/'的问题,当我们访问http://xxxx/home时,如果匹配不到location,会自动加上端口port以及 ...