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

时间:2017-05-21 18:31:53

标签: mysql date sum subtraction

​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

1 个答案:

答案 0 :(得分:0)

使用表结构,可以编写以获得所需结果的查询是:

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;

但是,我想提出一些建议:

  • 以MySQL date格式存储日期通常是个好主意:YYYY-MM-DD。如果有需要,您可以更轻松地运行年度报告。
  • 就记账而言,您可能会发现以下问答:[{3}}