MYSQL 有 2 个表。总日期相同。比较和减去日期

MYSQL has 2 tables. Same dates total. Compare and subtract dates

​tablo1                             tablo2
--------------------------         ------------------------------
fiyat1         tarih1              fiyat2            tarih2
----------     ------------        -----------        -----------
1200           03-2017             2100               03-2017
1050           03-2017             5200               03-2017   
3250           04-2017             3200               04-2017
2501           04-2017              
6100           05-2017
1100           05-2017            

以价格1收集相同日期,以价格2收集相同日期, 减去 2 个总数,按日期分组。

我想打印这样的东西:

-----------------------
05-2017      7200
04-2017      2511
03-2017     -5050

题目是对的,但结果是错误的。我试过了。

SELECT   tablo1.tarih1,
         tablo1.fiyat1,
         SUM(tablo1.fiyat1),
         tablo2.tarih2,
         tablo2.fiyat2,
         SUM(tablo1.fiyat1),
         (SUM(tablo1.fiyat1) - SUM(tablo2.fiyat2)) AS sonuc
FROM     tablo1 INNER JOIN
         tablo2 ON tablo1.tarih1 = tablo2.tarih2
GROUP BY tablo1.tarih1

在 table 结构不变的情况下,可以编写查询以获得所需结果:

SELECT t1.tarih1, (COALESCE(t1.fiyat1, 0) - COALESCE(t2.fiyat2, 0)) AS sonuc
FROM
    (SELECT tarih1, SUM(fiyat1) AS fiyat1
         FROM tablo1
     GROUP BY tarih1
    ) AS t1
    LEFT JOIN
    (SELECT tarih2, SUM(fiyat2) AS fiyat2
         FROM tablo2
     GROUP BY tarih2
    ) AS t2
    ON t1.tarih1 = t2.tarih2
ORDER BY t1.tarih1 DESC;

不过,我想提出几点建议: