2017-12-08 5 views
0

は、私は3つのテーブルを持っています。ここで 3表の加算と減算

は、私が何をしたいの例です:

tablo1
2017 - > 2100(alacak)

tablo2
2017 - > 600(borc)

  • 2100(アラカック) - 600(ボルク)= 1600(結果)

tablo3
2017 - > 600(gider)

  • 1600(結果) - 600(gider)= 1000(最終)

私が試み次のようなコード:

SELECT tablo1.year, (SUM(tablo1.alacak)-SUM(tablo2.borc)-SUM(tablo3.gider)) AS result 
FROM 
    tablo1 JOIN tablo2 ON tablo1.alacak = tablo2.borc   
    LEFT JOIN giderler ON tablo1.alacak = tablo3.gider 
    GROUP BY tablo1.year DESC; 

しかし、動作しません。どんな助けもありがとう。

+0

その画像のテキストを投稿自体に追加する方が簡単です。理由を調べるには、[this post](https://meta.stackoverflow.com/a/285557)を参照してください。 (このポストはコードについてですが、多くの点もここに当てはまります) – Ivar

+0

あなたのJOIN条件が正しくないようです。なぜあなたは 'ON tablo1.alacak = tablo2.borc'を使ってレコードをフィルタリングしていますか? 'year'フィールドでそれを行う必要はありませんか? –

+0

@Ivarを再インストールしました – vduvencioglu

答えて

0

thisは何ですか?

select year, 
(select sum(alacak) quantity 
     from table1 
    where table1.year = t3.year) 
    - 
(select sum(borc) quantity 
    from table2 
    where table2.year = t3.year) 
    - 
(select sum(gider) quantity 
    from table3 
    where table3.year = t3.year) as result 
    from table3 t3 
    group by year; 
+0

答えをありがとう。この行についてはエラーが発生しています。 from table3 where table3.year = t3.year)結果として from table3 t3 – vduvencioglu

+0

このような結果が得られます。 年 - > 2017件 - > NULL – vduvencioglu

+0

私は間違いました。今それは素晴らしい作品です。ありがとう。 – vduvencioglu