`

mysql sql汇总查询将两个结果集合并一行展示

阅读更多

最近在做一个统计功能,其中有根据一张表中的一个字段的不同状态统计,输出时将同一笔业务的多个数据集合成一条数据进行展示。

数据库是MYSQL,直接上代码,实例如下:

 

建表语句:

CREATE TABLE `TB_TABLE` (
  `ID` char(32) NOT NULL COMMENT '主键',
  `BIZ_NUM` varchar(30) DEFAULT NULL COMMENT '业务编号',
  `BIZ_AMT` int(11) DEFAULT NULL COMMENT '金额',
  `TYPE` char(11) DEFAULT NULL COMMENT '类型,01-流入;02-流出',
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='信息表';


INSERT INTO TB_TABLE VALUES('1','111',120,'01');
INSERT INTO TB_TABLE VALUES('2','111',80,'02');
INSERT INTO TB_TABLE VALUES('3','111',30,'01');
INSERT INTO TB_TABLE VALUES('4','222',70,'01');
INSERT INTO TB_TABLE VALUES('5','222',50,'02');

 

预期输出效果:

业务编号      流入金额      流出金额

111                    150            80

222                    70              50

 

方法一:

select 
t.biz_num,
sum(case when t.type='01' then t.biz_amt end) as bizAmtIn,
sum(case when t.type='02' then t.biz_amt end) as bizAmtOut
from tb_table t
where t.type in ('01','02')
group by t.biz_num

 方法二:

select 
t.biz_num,
sum(if(t.type='01',t.biz_amt,0)) as bizAmtIn,
sum(if(t.type='02',t.biz_amt,0)) as bizAmtOut
from tb_table t
where t.type in ('01','02')
group by t.biz_num;

 

 

分享到:
评论

相关推荐

    mysql查询语句汇总

    本汇总将全面介绍MySQL中的基本查询语法以及高级查询技巧。 1. **基础查询** - **SELECT语句**: 用于从表中选择数据。基本格式为 `SELECT column1, column2... FROM table_name;` - **WHERE子句**: 用于过滤结果...

    MySQL查询指令汇总

    ### MySQL查询指令汇总 #### 一、MySQL 查询语法基础 MySQL 是一款广泛使用的开源关系型数据库管理系统,其查询语句的基础构建块是 `SELECT` 语句。通过使用不同的组合和选项,`SELECT` 语句能够实现复杂的数据...

    mysql操作汇总.pdf

    MySQL是目前广泛使用的开源关系型数据库管理系统(RDBMS),它使用结构化查询语言(SQL)进行数据库管理,本文旨在总结MySQL操作相关的知识点,内容涵盖了MySQL数据类型、数据库和数据表操作、查询语言、约束、事务、...

    常用 SQL语句汇总,共 25 条.zip

    本资源“常用 SQL语句汇总,共 25 条.zip”提供了一个MySQL数据库的SQL语句集合,对于初学者和中级程序员来说是极好的学习材料。以下是对这25条SQL语句的详细解读: 1. **SELECT**:用于从表中选择数据,是最基础的...

    MySQL面试题大汇总

    5. **主键与外键**: 主键是唯一标识表中每一行的字段,外键则用于关联两个表,实现参照完整性。 6. **存储引擎**: MySQL有多种存储引擎,如InnoDB(支持事务处理和外键)、MyISAM(读写速度快,不支持事务)等。 **...

    Mysql笔记和常用操作汇总

    这篇笔记和操作汇总将深入探讨MySQL的基本概念、安装与配置、数据类型、表的创建与管理、查询操作、事务处理、索引、视图、存储过程以及备份与恢复等关键知识点。 一、基本概念 1. 数据库:存储数据的容器,由一...

    mysql常见面试题汇总

    - **视图**:虚拟表,根据查询结果创建,提供一个简化或定制的数据视图。 - **存储过程和函数**:预编译的SQL代码集合,可以封装复杂的操作逻辑。 了解并掌握这些MySQL知识点,不仅可以应对面试,也能在实际工作...

    经典的SQL语句(整理)

    INNER JOIN返回两个表中匹配的行,LEFT JOIN返回左表的所有行及右表匹配的行,RIGHT JOIN反之,FULL JOIN返回两个表的所有行。 六、子查询 子查询是嵌套在其他查询中的查询,可以用于创建复杂的查询结构。例如,找...

    25 条常用 SQL语句汇总

    7. **DISTINCT关键字**:用于去除查询结果中的重复行。例如,`SELECT DISTINCT 列名 FROM 表名`返回列名的所有唯一值。 8. **INSERT INTO**:向表中插入新记录,如`INSERT INTO 表名 (列1, 列2) VALUES (值1, 值2)`...

    一些常用的sql查询语句收藏

    5. **联接查询(JOIN)**:将两个或更多表的数据合并在一起。常见的JOIN类型包括INNER JOIN, LEFT JOIN, RIGHT JOIN, 和 FULL OUTER JOIN。例如: ```sql SELECT * FROM table1 INNER JOIN table2 ON table1....

    SQL语言基本语法

    6. **联接操作**:SQL的`JOIN`语句用于合并来自两个或更多表的数据。有多种类型的联接,如内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)和全连接(FULL JOIN)。 7. **分组和聚合**:使用`GROUP BY`和...

    MySQL数据库面试宝典1.pdf

    - **Row-based**:记录每一行数据的变化,适用于大多数情况,因为它可以捕获所有的数据更改。 - **Statement-based**:记录执行的SQL语句,这种方式占用空间较少,但可能因为某些语句无法复制而导致问题。 #### 二...

    可乐的SQL速查文档.pdf

    文档的使用方法是基于用户已经下载并安装好某个SQL工具的前提下,着重于“速查”的功能,用户可以通过搜索关键字来快速找到并查询SQL的相关用法。本篇文档涵盖了SQL学习的基础和进阶知识点,适合初学者和希望提高...

    关系数据库语言SQL知识介绍.pptx

    - 连接查询:JOIN操作用于合并来自两个或更多表的数据。 - 嵌套查询:在一个查询语句中嵌套另一个查询语句,用于满足更复杂的查询需求。 - 联合查询:UNION操作用于合并多个查询的结果集。 - 使用内置函数:如日期...

    sql 语句自学宝典

    - **GROUP BY子句**:用于将查询结果分组。 - **HAVING子句**:与GROUP BY子句一起使用,指定分组后的条件。 #### 第六天:表的联合 - **在一个SELECT语句中使用多个表**:通过INNER JOIN、LEFT JOIN、RIGHT JOIN等...

    SQL常用语句大全(详细)

    - `JOIN`用于将两个或更多表中的相关行组合在一起,依据它们之间的关联。 - `INNER JOIN`返回两个表中匹配的行。 - `LEFT JOIN`返回左表的所有行,即使右表没有匹配的行,用NULL填充。 - `RIGHT JOIN`反之,返回...

    程序员的SQL金典.rar

     11.8.1 将结果集转置为一行  11.8.2 把结果集转置为多行  11.9 递归查询  11.9.1 Oracle中的CONNECT BY子句  11.9.2 Oracle中的SYS_CONNECT_BY_PATH()函数  11.9.3 My SQL Server和DB2中递归查询 附录A 常用...

Global site tag (gtag.js) - Google Analytics