【问题标题】:MYSQL has 2 tables. Same dates total. Compare and subtract datesMYSQL 有 2 个表。总日期相同。比较和减去日期
【发布时间】:2017-05-21 18:31:52
【问题描述】:
​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

【问题讨论】:

标签: mysql date sum subtraction


【解决方案1】:

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

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;

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

【讨论】:

  • 感谢您的回答。我有这个专栏,但我收到了这样的警告。 “字段列表”中的未知列“tablo1.tarih1”
  • 对我来说似乎运行正常 - 看到这个rextester link
  • 我犯了一个错误。现在它完美地工作了。我将研究这个主题“保存‘借方’和‘贷方’信息的常用方法是什么?”非常感谢。
  • 太好了,感谢您的确认!很高兴它对你有用:)
猜你喜欢
  • 2020-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-23
  • 1970-01-01
  • 1970-01-01
  • 2015-08-22
  • 2010-10-08
相关资源
最近更新 更多