mysql - 我可以从同一列中选择值并将它们显示在 2 列结果中吗?

标签 mysql sql

假设我有一个帐户条目移动表,比如

ACCOUNTS table
+-------+------+---------+
| title | side | balance |
+-------+------+---------+
| cash  | debit|  500.0  |
+-------+------+---------+
| cash  |credit|  300.0  |
+-------+------+---------+
| cash  |credit|  600.0  |
+-------+------+---------+
#..... more than 10'000 debit and credit rows

我想对贷方行的总和和借方行的总和进行分组,并在不同的列中显示它们的每一个总和。

我试图做的是对各组边的余额求和,比如

select title, side, sum(balance) from accounts group by side

我得到 2 行,一个是借方总和,另一个是贷方总和,比如

+-------+------+---------+
| cash  | debit|  500.0  |
+-------+------+---------+
| cash  |credit|  900.0  |
+-------+------+---------+



我想要的是在一个结果行中得到整个结果,一个字段中的借方总和和另一个字段中的贷方总和。我希望最终结果是这样的

+-------+-------+-------+
| cash  | 500.0 | 900.0 |
+-------+-------+-------+

谢谢。

最佳答案

你可以用例

select title, sum( case side when 'debit' then balance else 0 end ), 
   sum( case side when 'credit' then balance else 0 end )
from accounts 
group by title

关于mysql - 我可以从同一列中选择值并将它们显示在 2 列结果中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39131375/

相关文章:

php - 使用 php 未在 mysql(0000-00-00) 中输入日期

php - 仅显示 phpmyadmin 用户选择的数据库

php - 仅在 Microsoft Access 更新时将 Microsoft Access 导出到 Mysql

mysql - 如何在现有列中添加前导零?

sql - 混淆/屏蔽/打乱个人信息

php - 在使用 $stmt -> fetch() 之前检查结果

mysql - MySQL Enterprise Master 可以复制到 MySQL Community Slave 吗?

Python:将 MySQL 日期时间转换为日期时间格式

android - 具有有限最大行数(通过选择)效率的 sqlite3 表

mysql - 如何对设定值进行 IN 条件检查