mysql - 尝试获取慈善组织的捐款和费用月度报告

标签 mysql sql

我有两个表,分别称为费用和捐赠

表1

费用

s.no   expensedate    expense
1       13/01/16         30
2       15/01/16         60

表2

s.no   donationdate    donation
15       14/01/16         30
18       19/01/16         10

需要输出

Month       Expense    Donation
Jan            90            40

我可以像这样单独获取输出

Month  expense
jan       90

Month  donation
jan       40

但无法将它们连接在一起,这样就可以提供所需的输出。

谢谢

最佳答案

我会使用union allgroup by来做到这一点:

select date_format(dte, '%Y-%m') as yyyymm,
       coalesce(sum(expense), 0) as expenses,
       coalesce(sum(donation), 0) as donations
from ((select expensedate as dte, expense, null as donation
       from expenses
      ) union all
      (select donationdate as dte, null, donation
       from donations
      )
     ) ed
group by date_format(dte, '%Y-%m')
order by yyyymm;

关于mysql - 尝试获取慈善组织的捐款和费用月度报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37106381/

相关文章:

php - 将 Pear DB 站点迁移到 mdb2,返回语法错误

SQL 连接表 - 每个 'on' 匹配字段连接表上的多行合并为一行?

SQL 性能(替换)

php - 在日历中添加事件

java - 一个很好的 Android 上的 Java ORM 库

sql - 基于 JOIN 查询创建 Django 模型

php - array_walk_recursive 和 mysqli::real_escape_string 出错

mysql - 为什么这个 MySQL 索引会被用于这个查询?

MySQL 表连接索引仅在特定条件下工作

mysql - 在 DATETIME 列上使用 <= 与使用 < 时的 Big SQL SELECT 性能差异