Bonjour à tous,

J’ai une question concernant une requête sql dans une base Oracle.
J’ai une table
PRODUIT EXEMPLAIRE
__A________001
__A________002
__A________003
PRODUIT PERSONNE DEPART ARRIVE EXEMPLAIRE
___A______NULL___1117___1120____NULL
___A______NULL___1117___1120____NULL
___A______NULL___1120___1110____NULL
___A______NULL___1120___1110____NULL
___A______PERS1__1110___NULL____001


Un produit a plusieurs exemplaires. Un exemplaire est destiné a une personne. Je connais l’exemplaire (001) qui est destiné à la personne (PERS1). Je sais également qui a donné à cette personne (1110). Il y a plusieurs étapes de passation et mon objectif est de tracer le chemin parcouru par l'exemplair du produit.
J’ai pensé à faire la requête suivant

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
UPDATE Transfert a SET a.Exemplaire =         
      (SELECT DISTINCT b.Exemplaire           
      FROM Transfert b           
      WHERE a.Produit = b.Produit          
      AND a.Arrive = b.Depart           
      AND b.Exemplaire IS NOT NULL          
      AND ROWNUM = 1)  
WHERE a.Exemplaire IS NULL;
Le problème c’est qu’il me fait une boucle infinie. Auriez-vous une solution ?


Merci d’avance pour votre aide