0

製造工場を管理するプログラムを作成しており、各製品のトレーサビリティ (作成から最終出荷までのすべての経路) を示す必要があります。例を示します: 工場はA001数量でドキュメントを作成します400。 , 彼らは製品を分割する必要があり, ドキュメントB002とを作成します. B003, 両方とも数量200で , 両方ともParentフィールド値はA001です. その後, それらはB002より小さな断片に分割されます. これにより, すべてが数量で, すべてがフィールド値で のドキュメントC004, C005,C006とが作成されます. .これらの小さなピースは、再び分割することもできます...C00750ParentB002

ここで、 document の完全なサイクルを追跡しB002たい場合は、フィールドをチェックし、Parentそれを document フィールドと交差させてその情報を取得し、Parentフィールドがであるドキュメントを取得しますB002。それが「簡単」な部分です。

今、トリッキーな部分です。

ドキュメントの完全なサイクルを知りたいC007。私は彼の親を調べてB002書類を手に入れなければなりませParentA001。また、ドキュメントをチェックしてParent C007、何も見つけられませんでした。

または、ドキュメントの完全なサイクルを知っていますA001。あるかどうかを確認しますParent(ないでしょう)。すべてのドキュメントをParent A001で取得し、次にすべてのドキュメントを取得する必要がParent B002ありB003ます。

これを実行できる SQL の関数はありますか、それとも、親と子の両方をチェックするために何度も繰り返されるプロシージャを作成する必要がありますか? もしそうなら、私は何をすべきかわからないので、助けていただければ幸いです。

4

1 に答える 1