SQLで合計金額を出すには?


ドレミ  2003-08-17 05:27:51  No: 108141

日付│収支│金額
──┼──┼──
8/4 │収入│2000
8/5 │収入│3000
8/6 │支出│1000
8/7 │支出│ 500
8/8 │収入│2000

というテーブルがあって、合計金額を出す
SQLはどうなるでしょうか?
収入の場合は足す、支出の場合は引いて、
合計5500円と結果が出るようにしたいです。
VB6でDAOを使ってます。


たかみちえ  URL  2003-08-17 05:57:41  No: 108142

支出をマイナス値で書くように(1000じゃなくて-1000)したら、解決すると思いますけど、
そういう記述じゃだめなんですか?


Say  2003-08-17 09:12:18  No: 108143

データベースによってやり方が異なりますので
なんともいえませんが、DECODE(Oracleの場合)や
IIf(Jetの場合)のようなSQL関数(DBごとの方言)で
対処することが可能です。

正規化されているなら、「収支種別マスタ」のような、
収支IDと収支名を紐付けているマスタがあるはずですから、
「Value」フィールドか何か追加して、「1」「-1」のような
値を入れておけば、リレーションしてひっぱったValueを
金額に掛けてSumする、という方法もあります。


ぢゃわ  2003-08-21 02:50:53  No: 108144

前述のお二人のとおりですが、参考までにJetでのSQL文を。

SELECT Sum(IIf(収支='収入',金額,-1*金額)) AS 合計金額, FROM テーブル;

こんなかんじになります。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加