@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

レコードの差を求めるには

1
投稿者投稿内容
だんく
常連さん
会議室デビュー日: 2006/02/06
投稿数: 47
投稿日時: 2006-03-26 16:43
あるテーブルに、時間、完成数Aというフィールドがあり、
完成数Aは、時間が増えるにつれ減りはしないです。
そこで、時間を昇順で並べて、完成数Aを比較して前のレコードから幾つ完成品Aが
増えたかをSQL文で抽出するにはどうすれば良いでしょうか?

以下のようにできれば幸いです。

時間 完成数A 完成数B
9:00 100 100
9:05 200 100
9:10 250 50
9:15 300 50
9:20 450 150
9:25 450 0
9:30 500 50
9:35 550 50

よろしくお願いいたします。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2006-03-26 17:29
具体的な要件やRDBがわからないので、ヒントくらいにしかならないと思いますが。
コード:
select
    a.時間
    a.完成数 as 完成数A
    a.完成数 - nullなら0にする関数(b.完成数,0) as 完成数B
from
    テーブル as a
left join
    テーブル as b
on
    a.時間 = 時間の差分を計算する関数(b.時間,5分)



このような抽出を行うには、あるレコードの前レコードを特定する方法が必要です。
面倒な抽出を行うくらいなら、簡単な抽出後にプログラムで計算した方が
一番楽じゃないかなと思いますよ。
だんく
常連さん
会議室デビュー日: 2006/02/06
投稿数: 47
投稿日時: 2006-03-27 13:40
ありがとうございます。
簡単な抽出後にプログラムで計算の方法をとりたいと思います。

1

スキルアップ/キャリアアップ(JOB@IT)