
以下のようなテーブルがあります。
納品データ
注文番号 売上番号 連番 商品名
11111 2 1 さしすせそ
11111 2 2 たちつてと
11111 3 1 なにぬねの
11111 4 1 はひふへほ
売上データ(既存データ)
注文番号 売上番号 連番 商品名
11111 1 1 あいうえお
11111 1 2 かきくけこ
注文番号は注文毎に付与される番号
売上番号は発送毎に付与される番号
連番は売上番号毎に付与される連番
毎回 納品データを売上データに取り込みます。
連番に関しては、
納品データと売上データで連番は連動しておらず、
売上データに納品データと同等の注文番号があれば、
注文番号の最大連番数を+1した番号で取り込みます。
更新後、売上データは、
注文番号 売上番号 連番 商品名
11111 1 1 あいうえお(既存データ)
11111 1 2 かきくけこ(既存データ)
11111 2 3 さしすせそ
11111 2 4 たちつてと
11111 4 5 なにぬねの
11111 5 6 はひふへほ
としたいのです。
SELECT
(SELECT 納品データ.連番+(SELECT NVL(MAX(売上データ.連番),0) FROM 売上データ
WHERE 売上データ.注文番号 = 納品データ.注文番号) AS 連番)
FROM 納品データ
で売上データの連番+1はできたのですが、
売上番号が違う場合は、連番が1になるパターンとなり、
納品データ
注文番号 売上番号 連番 商品名
11111 2 1 さしすせそ
11111 2 2 たちつてと
11111 3 1 なにぬねの ←
11111 4 1 はひふへほ ←
上記SQLですと、
更新後、売上データは、
注文番号 売上番号 連番 商品名
11111 1 1 あいうえお(既存データ)
11111 1 2 かきくけこ(既存データ)
11111 2 3 さしすせそ
11111 2 4 たちつてと
11111 4 3 なにぬねの ← 5にしたい
11111 5 3 はひふへほ ← 6にしたい
となり、連番となりません。
どのようにSQLを書けばよいのか、困っています。
どうか、ご教示お願い致します。
No.1ベストアンサー
- 回答日時:
こういうことでしょうか。
insert into 売上データ (
注文番号, 売上番号, 連番, 商品名
)
select
注文番号
, 売上番号
, ROW_NUMBER() over(partition by 注文番号 order by 売上番号, 連番) + (select COUNT(*) from 売上データ T2 where T1.注文番号 = T2.注文番号) 連番
, 商品名
from 納品データ t1;
ROW_NUMBER()で納品データ内での連番を振って、その連番に既存データの件数を足しています。
MAX(連番)だと、同一注文番号が既存データに存在しない時にNULLになってしまうので、COUNTで件数を取るようにしています。
>>ROW_NUMBER() over(partition by 注文番号 order by 売上番号, 連番)
>>MAX(連番)だと、同一注文番号が既存データに存在しない時にNULLになってしまうので、COUNTで件数を取るようにしています。
バッチリです!
ROW_NUMBERを使用するのですね。
とても勉強になりました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Visual Basic(VBA) VBAで最新のデータを別シートに転記する方法をお教えください。 3 2022/04/07 19:20
- その他(データベース) c言語の問題です。これを踏まえてコーディングしたいのでおしえていただきたいです。 3 2023/08/03 09:27
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- その他(車) 古い普通乗用車の更新終了しているナビを何とか使える方法はないものでしょうか? 5 2023/02/18 23:05
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- Oracle sqlのupdate文で質問です。 テーブルBの番号をキーにテーブルAの身長をテーブルBの身長に更新 2 2022/11/02 15:15
このQ&Aを見た人はこんなQ&Aも見ています
-
ショボ短歌会
ひどい短歌を詠んでください。
-
初めて自分の家と他人の家が違う、と意識した時
子供の頃、友達の家に行くと「なんか自分の家と匂いが違うな?」って思いませんでしたか?
-
人生で一番思い出に残ってる靴
皆さんの人生で一番思い入れのある靴の話を伺ってみたいです。
-
チョコミントアイス
得意ですか?不得意ですか?できれば理由も教えてください。
-
人生で一番お金がなかったとき
人生で一番お金がなかったときって、どんなときでしたか?
-
ROWNUMでUPDATEをしたいのですが・・・。
Oracle
-
自動連番でカラムを更新したい
Oracle
-
INSERT時に発番を行いたい
SQL Server
-
-
4
SQL、2つのテーブルで条件一致したものだけdeleteする方法は?
Oracle
-
5
SELECTで1件のみ取得するには?
Oracle
-
6
単一グループのグループ関数ではありません。
Oracle
-
7
SELECT INTOで一度に複数の変数へ代入をするにはどのようにすれがよいでしょうか?
PostgreSQL
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
LEFT JOIN あいまいな外部結合
-
Accessのフォームで思った順番...
-
orace SQL文のエラー(ORA-0092...
-
accessクエリの結果の縦横表示...
-
updateでグループ化
-
エクセルでリピート率
-
特定条件での連番の振り方を教...
-
2つのテーブルを結合して最大値...
-
差し込み後、元データを変更し...
-
エクセルの関数について教えて...
-
エクセルで最後の文字だけ置き...
-
フィルターかけた後、重複を除...
-
誰か教えてください
-
EXISTSを使ったDELETE文
-
カーソル0件の時にエラーを発生...
-
SELECT 文 GROUP での1件目を...
-
SQLで特定の項目の重複のみを排...
-
sqlで、600行あるテーブルを100...
-
SQLServerで文字列の末尾からあ...
-
INSERT文でフィールドの1つだ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
LEFT JOIN あいまいな外部結合
-
Accessのフォームで思った順番...
-
商品番号を入力すると、商品名...
-
updateでグループ化
-
エクセルでリピート率
-
各伝票に対して明細を1行目だけ...
-
2つのテーブルを結合して最大値...
-
IDの欠番
-
特定条件での連番の振り方を教...
-
Word差し込み印刷 数式について
-
ACCESSでフォーム上のオブジェ...
-
orace SQL文のエラー(ORA-0092...
-
文字列のあるキーワードから開...
-
同一テーブルのデータを検索条...
-
アクセスのフォームで連動した...
-
Accessレポート 複数条件での集計
-
Accessの追加クエリの方法(重...
-
アクセス・ファイルメーカーを...
-
ACCESS2000でコードごとの連番...
-
アクセス メインフォームの伝...
おすすめ情報