私はSQLクエリ、特にロジックを含むものには少し慣れていません。何時間も検索してきましたが、この場合、検索する正確な用語を見つけるのは簡単ではありません。私は比較的単純なものを持っています、私は確信しています:
テーブルには2つの列があり、各行にはプログラム内の関数に関するデータが含まれています。一部の関数には、(グループ化のために)関連付けられた親関数があります。列Aは一意の関数IDです。列Bは、該当する場合、親関数のIDを示します。すべての親機能IDは、列Aの他の場所に存在する独立した有効な機能IDです。
レポートの目的で、親IDでグループ化された関数を一覧表示し、子関数とともに親関数を一覧表示する必要があります。親関数IDで簡単に報告できますが、問題は、列Bが空であるため、親関数が親関数であることを認識しないことです。
私がする必要があるのは、列Bの値が空で、関数が親関数として他の場所で参照されている場合に、その値を完成させることです。
特に明記されていない限り、列BにNULL値がある各行について:
- 列Aから値を取得します
- 列Bの任意の行にその値が存在するかどうかを確認します
- 一致する場合は、値を列Bに挿入します(列AとBが同じ値になるようにします)
私が持っているもの:(クエリSELECT function_id, parent_function FROM functions
:)
FUNCTION_ID PARENT_FUNCTION
4
13 4
79
138 4
195
314 345
345
私が持っている必要があるもの:
FUNCTION_ID PARENT_FUNCTION
4 4
13 4
79
138 4
195
314 345
345 345
何か案は?SQLに慣れるのが待ちきれません!よろしくお願いします。