php - 在一个 mysql 中连接两个查询

标签 php mysql optimization

我有这两个表。

收入

ID |已验证 |收入|日期

1         123                 12            2017-03-01
2         99                  44             2017-03-01
3         66                  44             2017-04-01
4         66                  44             2017-04-01
5         66                  44             2017-05-01

成本

ID |成本|日期
1      123        2017-04-01
2      99          2017-04-01
3      77          2017-05-01
4      33          2017-05-01
5      66          2017-06-01

我需要获取 SUM(VALIDATED) [一整月的总和,例如 2017-03 是 123 + 99]、SUM(REVENUE)[一整月的总和,例如 2017-03 是 12 + 44] 、SUM(COSTS)[整个月的总和,例如 2017-03 是 0 + 0,因为该月没有成本] 和 DATE VALUES 按日期排序。 结果应该是这样的:

结果查询
已验证 |收入|成本|日期
222                      56                 0         2017-03
132                     88                 22        2017-04
66                      44                   22        2017-05
0                         0                    66         2017-06

我已经将该查询分开了

SELECT
   SUM(validated) AS 'validated',
   SUM(revenue) AS 'revenue',
   DATE_FORMAT(Date, '%Y-%m') AS Date
FROM incomes WHERE date LIKE '%2017%'
GROUP BY(DATE_FORMAT(Date, '%Y-%m'));
<小时/>
SELECT
   SUM(validacion) AS 'costes',
   DATE_FORMAT(Date, '%Y-%m') AS Date
FROM costes WHERE date LIKE '%2017%'
GROUP BY(DATE_FORMAT(Date, '%Y-%m'));

请提供帮助,我们将不胜感激。

最佳答案

SELECT 
    SUM(validated) AS 'validated',
    SUM(revenue) AS 'revenue',
    SUM(COS.COSTS) COSTS,
    DATE_FORMAT(Date, '%Y-%m') AS Date
FROM
    incomes INC
        INNER JOIN
    costes COS ON DATE_FORMAT(INC.Date, '%Y-%m') = DATE_FORMAT(COS.Date, '%Y-%m')
GROUP BY DATE_FORMAT(INC.Date, '%Y-%m')

尝试上面的查询。

关于php - 在一个 mysql 中连接两个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45144738/

相关文章:

javascript - 如何在对象[object HTMLCollection]上插入Mysql数据文本

php - PHP 中 C# 的空值合并运算符 (??)

javascript - 使用 Jquery 和 AJAX 进行表单验证

mysql - 我无法启动 MySQL Server 和 Workbench 错误

python-3.x - 如何修复 TypeError : G must be a 'd' matrix?

c# - 使用 + 的字符串连接是否针对 .NET 中的 StringBuilder 实现进行了优化?

php - VTiger 初学者 - 这些元素在哪里?

Mysql-如何获取同一表中其他列中的所有记录

mysql - 每天的独特值(value)

jquery - 来自 MySQL 数据库的谷歌地图的坐标,优化的正确方法?