2017-05-21 56 views
0
​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个总计,通过日期组收集在同一日期。MYSQL有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 
+0

见https://meta.stackoverflow.com/questions/333952/why -should-i-provide-an-mcve-for-what-seem-to-the-very-simple-sql-query – Strawberry

回答

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; 

不过,我想提供一些建议:

+0

谢谢你的回答。我有这个专栏,但我得到了这样的警告。 '字段列表'中的未知列'tablo1.tarih1' – vduvencioglu

+0

似乎对我运行正常 - 请参阅此[rextester链接](http://rextester.com/NQI27632) –

+0

我犯了一个错误。现在它完美地工作。我将研究这个主题“什么是拯救'借记'和'信用'信息的常用方法?”非常感谢。 – vduvencioglu