![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
テーブル1のデータを計算してテーブル2を作成したいと考えております。
計算については"数値"を更新日付の一つ前の値と引き算してその結果をテーブル2に挿入したいと思ってます。
テーブル1
ID 数値 更新日付
001 23 2008/02/23 2:00:00
001 34 2008/02/23 3:00:00
001 50 2008/02/23 4:00:00
001 23 2008/02/23 5:00:00
002 25 2008/02/23 3:00:00
002 50 2008/02/23 4:00:00
002 70 2008/02/23 5:00:00
002 50 2008/02/23 6:00:00
結果
テーブル2
ID 数値 更新日付
001 11 2008/02/23 3:00:00
001 16 2008/02/23 4:00:00
001 -27 2008/02/23 5:00:00
002 25 2008/02/23 4:00:00
002 20 2008/02/23 5:00:00
002 -20 2008/02/23 6:00:00
一応考えたのですが
SELECT *
FROM テーブル1 AS a, テーブル1 AS b
WHERE (((a.ID)=[b].[ID]) AND ((b.更新日付)=(select min(更新日付) from テーブル1 as b where a.更新日付 < b.更新日付)))
ORDER BY a.ID, a.更新日付);
として、aとbの数値を引き算しようと考えていますが、可能なのでしょうか?
ぜんぜん別の方法でもいいので教えていただけないでしょうか?
以上 よろしくお願いいたします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
前の質問を締め切らずに継続する質問をする行為は、「続きの質問」として、ここでは規約違反です。
RDBMS名とバージョンを明示するように求めましたが、なぜ提示がないのでしょう?せっかく具体的なSQLを提示しても、dekinaikunさんの環境では実行できない可能性があります。
>aとbの数値を引き算しようと考えていますが、可能なのでしょうか?
可能かどうかと言われれば、可能です。
しかし、RDBには、「前の行」や「後の行」という概念がないので、利用者側で通番を付けるといった工夫が必要になります。また、そういった操作は、SQLだけでやるより、ストアドプロシジャを使うとか、アプリケーション側でやる方が、シンプルだし性能も出せます。
以下のように、表定義やデータを格納するSQLを貼り付けておくと、アドバイスする側としてもすぐに検索SQLの作成に入れるので、多くの人から早くアドバイスをもらえると思いますよ。
1.表定義例
create table tbl1
(seqno int identity(1,1),
id int,
数値 int,
更新日付 datetime);
2.格納データ例
insert into tbl1(id,数値,更新日付) values(1,23,'2008/02/23 2:00:00');
insert into tbl1(id,数値,更新日付) values(1,34,'2008/02/23 3:00:00');
insert into tbl1(id,数値,更新日付) values(1,50,'2008/02/23 4:00:00');
insert into tbl1(id,数値,更新日付) values(1,23,'2008/02/23 5:00:00');
insert into tbl1(id,数値,更新日付) values(2,25,'2008/02/23 3:00:00');
insert into tbl1(id,数値,更新日付) values(2,50,'2008/02/23 4:00:00');
insert into tbl1(id,数値,更新日付) values(2,70,'2008/02/23 5:00:00');
insert into tbl1(id,数値,更新日付) values(2,50,'2008/02/23 6:00:00');
3.検索例
select
x.id,
x.数値-(select 数値
from tbl1
where seqno=x.seqno-1) as 数値,
x.更新日付
from tbl1 as x
where x.seqno>all (select min(seqno) from tbl1 where x.id=id)
order by x.id,x.更新日付
;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle SQL update方法 2 2022/06/22 14:07
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Oracle sqlで質問です。 Aテーブルの情報をBテーブルに更新かけたいです。 やりたいことは、Bテーブルの受 1 2023/05/17 11:17
- MySQL 共通点はあります。何が違うのでしょうか? 1 2023/01/27 05:22
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Access(アクセス) アクセス テーブルの空白を変数に置換するボタンが作りたい 4 2022/07/08 11:19
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
前のレコードの値を自動で入れたい
PowerPoint(パワーポイント)
-
前のレコードの合計に現レコードの値を加えたいのです。
Access(アクセス)
-
2つのテーブルで引き算 postgres
PostgreSQL
-
-
4
SQLServerで文字列の末尾からある位置で取出
SQL Server
-
5
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
6
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
7
オラクルではできるのにSQLSERVERではサブクエリーで複数キーを指定できない?
SQL Server
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
上位3位を求めるSQL文は?
-
副問合せの書き方について
-
Access パラメータクエリをcsv...
-
VIEWの元のテーブルのindexって...
-
ある時間以内の利用者の抽出に...
-
insertを高速化させたい
-
SQL Left Join で重複を排除す...
-
ある条件の最大値+1を初番する...
-
1テーブル&複数レコードの更新...
-
エクセルの関数について教えて...
-
全角文字を含む行を検索
-
同一のユーザー、同一商品のと...
-
テーブル作成です。どこかのス...
-
ストアドのエラーについて
-
クエリ表示と、ADOで抽出したレ...
-
[MySQL] 3つのテーブルの結合で...
-
入力値と外部キーをINSERTするには
-
親と子供が複数のSQL取得方法
-
select文のwhere句に配列を入れ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
副問合せの書き方について
-
SQLサーバから、項目の属性(型...
-
SQL Left Join で重複を排除す...
-
select文のwhere句に配列を入れ...
-
VIEWの元のテーブルのindexって...
-
PL/SQLの変数について
-
マイクラPC版のコマンドで効率...
-
エクセルの関数について教えて...
-
SQLにて特定の文字を除いた検索...
-
sqlで、600行あるテーブルを100...
-
Access パラメータクエリをcsv...
-
Unionした最後にGROUP BYを追加...
-
inner joinをすると数がおかし...
-
複数テーブルのGROUP BY の使い...
-
ある条件の最大値+1を初番する...
-
MySQLのint型で001と表示する方...
-
クエリ表示と、ADOで抽出したレ...
-
[MySQL] UNIQUE制約の値を更新...
-
テーブル名を省略して「h.id」...
おすすめ情報