こういうことでしょうか。
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を使用するのですね。
とても勉強になりました。
ありがとうございました。
お礼
>>ROW_NUMBER() over(partition by 注文番号 order by 売上番号, 連番) >>MAX(連番)だと、同一注文番号が既存データに存在しない時にNULLになってしまうので、COUNTで件数を取るようにしています。 バッチリです! ROW_NUMBERを使用するのですね。 とても勉強になりました。 ありがとうございました。