ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

QNo.4028266 条件とテーブルを指定した合計Function作成
質問者:CFR6368 AccsessなどでDsum関数が用意されてますが、Postgreにはないようですね。
同じ関数を作りたいのですがわかりません。
どなたか教えていただけませんか。
困り度:
  • すぐに回答を!
質問投稿日時:
08/05/17 07:18
この質問に対する回答は締め切られました。

回答良回答20pt

ANo.2 1行1行に累計を返すというのは、SQLでやるにはあまり効率的でない(アプリケーションでやった方が、より軽快)ですけどね。

SQL例としては、以下のような方法があります。

select
id,売上,入金,(select sum(売上-入金) from t1 where id<=x.id) as 累計
from t1 as x
order by id
回答者:chukenkenkou
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:
08/05/18 00:47
この回答へのお礼chukenkenkouさん。
適切な回答をありがとうございます。
Functionを定義するより早そうです。()で列が指定できるとは思いませんでした。
ごれでいきます。
ありがとうございました。

回答

ANo.1 表計算ソフトの機能ですから、主要なRDBMSにはないというか、SQLでもっと多用なクエリが書けるので必要がないと思います。

select sum(列名) from 表名 where 検索条件

といった初歩的なSQLで、同等な結果は得られます。

>同じ関数を作りたいのですがわかりません。

関数にする必要性が分かりませんが、具体的に何が分からないのですか?
回答者:chukenkenkou
種類:補足要求
どんな人:一般人
自信:参考意見
回答日時:
08/05/17 16:48
この回答への補足説明不足ですいません。
カーソルの行ごとに、その行までの累計を得たいのです。
例として
SELECT ID,売上,入金,DSum(売上-入金, (Table), "ID<=" & ID ) FROM (Table);
の様にSQLで1つのカーソルで処理したいからです。
1行のSQLで書ける方法があれば、それもOKです。

出来るものでしょうか?
この回答へのお礼この回答にお礼をつける(質問者のみ)