質問 |
||
| 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です。 出来るものでしょうか? |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |