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;
不过,我想提出几点建议:
- 通常以 MySQL
date
格式存储日期是个好主意:YYYY-MM-DD
。如果有需要,运行 年度报告对您来说会容易得多。
- 就簿记而言,也许您会发现以下问答是您感兴趣的:What is a common way to save 'debit' and 'credit' information?
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;
不过,我想提出几点建议:
- 通常以 MySQL
date
格式存储日期是个好主意:YYYY-MM-DD
。如果有需要,运行 年度报告对您来说会容易得多。 - 就簿记而言,也许您会发现以下问答是您感兴趣的:What is a common way to save 'debit' and 'credit' information?