製造工場を管理するプログラムを作成しており、各製品のトレーサビリティ (作成から最終出荷までのすべての経路) を示す必要があります。例を示します: 工場はA001
数量でドキュメントを作成します400
。 , 彼らは製品を分割する必要があり, ドキュメントB002
とを作成します. B003
, 両方とも数量200
で , 両方ともParent
フィールド値はA001
です. その後, それらはB002
より小さな断片に分割されます. これにより, すべてが数量で, すべてがフィールド値で のドキュメントC004
, C005
,C006
とが作成されます. .これらの小さなピースは、再び分割することもできます...C007
50
Parent
B002
ここで、 document の完全なサイクルを追跡しB002
たい場合は、フィールドをチェックし、Parent
それを document フィールドと交差させてその情報を取得し、Parent
フィールドがであるドキュメントを取得しますB002
。それが「簡単」な部分です。
今、トリッキーな部分です。
ドキュメントの完全なサイクルを知りたいC007
。私は彼の親を調べてB002
書類を手に入れなければなりませParent
んA001
。また、ドキュメントをチェックしてParent
C007
、何も見つけられませんでした。
または、ドキュメントの完全なサイクルを知っていますA001
。あるかどうかを確認しますParent
(ないでしょう)。すべてのドキュメントをParent
A001
で取得し、次にすべてのドキュメントを取得する必要がParent
B002
ありB003
ます。
これを実行できる SQL の関数はありますか、それとも、親と子の両方をチェックするために何度も繰り返されるプロシージャを作成する必要がありますか? もしそうなら、私は何をすべきかわからないので、助けていただければ幸いです。