次のような顧客提供のデータセットがあります:(簡略化)
|ForiegnKey|Code1|Code2|Code3|
|==========|=====|=====|=====|
|A |10 |20 |30 |
|A |10 |20 |30 |
|B |100 |200 | |
|C |25 |35 |40 |
|D |1000 | | |
|E | | |9999 |
最終製品の場合、これを一度に1つの新しいテーブルコードに入力する必要があるため、次のようになります。
|ForiegnKey|Sequence|Code|
|A |1 |10 |
|A |2 |20 |
|A |3 |30 |
|B |1 |100 |
|C |1 |25 |
|C |2 |35 |
|C |3 |40 |
|D |1 |1000|
|E |1 |9999|
私の質問では、ユニオンの使用を伴わないクエリでこれを行う簡単な方法はありますか?
ForiegnKeyの値に基づいてシーケンス番号を生成する必要があります(つまり、ForiegnKey Eの場合、列Code3にあったとしても、シーケンスは1である必要があります)。ユニオンを使用せずにこれをテーブルから取得できるので、同じステートメントでシーケンスIDを生成できます。
D-2と3、E-1と2などの空のコード値はスキップする必要があります。
私は一時的なテーブルを使用してこれに取り組み始めましたが、ここをチェックして、もっと簡単な方法があるかどうかを確認したいと思いました。
ありがとう