質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

Q&A

0回答

380閲覧

Oracle レコードでの足し算を実行したい

takc

総合スコア0

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

0グッド

0クリップ

投稿2022/05/25 02:14

編集2022/05/25 05:21

Oracleで以下のようなことを実現させたいです。

TESTテーブル

No列1列2列3
12022020012345100
22022020112345150
3202202021234510

主キーは列1と列2。
No1の列3データの100をNo2の列3の150に足した結果を表示させたいです。

条件は
①列2の項目値が同じこと(12345=12345)
②列1の下二けたが00の列3データを列1の下二けたが01の列3データに加算したいです。

単純に10を足すなどは理解しているのですが
レコードの項目を足すことができません。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Orlofsky

2022/05/25 02:45

SQLではUPDATEを使いますが、PRIMARY KEYは列1でしょうか? 質問は修正できますから、この掲示板ではテーブル定義はCREATE TABLEで、データはINSERTに、Markdownの[コード]を使って提示してください。 https://teratail.com/help/question-tips#questionTips37
Orlofsky

2022/05/25 13:08

テーブル設計の基本ですが、1つの列には1つの意味しか持たせません。 >②列1の下二けたが00の列3データを列1の下二けたが01の列3データに加算したいです。 文字型の列であればSUBSTRで文字列の一部を取得できますが、オプティマイザはテーブル全件に対して 下二けたSUBSTRした結果が '00' と等しいか?って判断するので、その列にインデックスが設定してあってもインデックスは使われないので、データが増えるに従って極端にパフォーマンスが悪くなります。今のテーブル設計で押し通したら後悔するでしょう。 SUBSTRしなければならないなら、最初から別々の列に分けます。 質問は修正できます。
Orlofsky

2022/05/25 13:34

>単純に10を足すなどは理解しているのですが >レコードの項目を足すことができません。 今まで書いたSQLを質問に追記しては?
KOZ6.0

2022/05/25 17:59

列2、列1の順に並べ替えて1行目後を加算するってこどであれば 「グループ単位に、検索したレコードのn行後のデータを取得する( LEAD )」 http://oracle.se-free.com/dml/0601_lead.html が使えそうですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問