Bonjour à tous,
Imaginons une table :
Qui contiendrait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 ESSAI CHAMPS1 VARCHAR(50) CHAMPS2 VARCHAR(50)
CHAMPS1 comporte un nom, CHAMPS2 comporte le nom hiérarchique lié.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61 D1 NULL D2 NULL D2 D3 D2 D5 D2 D6 D2 D7 D2 D8 D2 D9 D3 NULL D4 NULL D4 D1 D4 D4 D4 D10 D4 D13 D4 D14 D4 D15 D4 D16 D4 D17 D4 D9 D10 NULL D10 D12 D11 NULL D12 NULL D12 D18 D13 NULL D13 D13 D5 NULL D5 D1 D5 D10 D5 D13 D5 D5 D5 D20 D5 D15 D5 D16 D19 NULL D19 D6 D14 NULL D20 NULL D21 NULL D15 NULL D6 NULL D7 NULL D8 NULL D22 NULL D22 D5 D22 D21 D22 D23 D23 NULL D23 D10 D23 D16 D16 NULL D17 NULL D17 D24 D18 NULL D25 NULL D25 D10 D25 D6 D25 D16 D25 D9 D9 NULL D24 NULL
Je cherche à hiérarchiser sans interdépendance ces données ... EN SQL pur ou PL/SQL ...
Ceci afin de récupérer ou d'alimenter une table
Qui me classerait par le champs ordre (de 1 à 25 dans l'exemple) les noms présents dans CHAMPS 1 (distinct de l'autre table) sans interdépendance ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 ESSAI2 CHAMPS1 VARCHAR(50) ORDRE INT
Par exemple D1 peut être traiter en ordre 1 car dépendant de rien
mais D2 doit être traité après D3,D5,D6,D7,D8,D9 qui eux même doivent être traités ... Donc cela devrait faire au final un classement ...
Est ce assez clair ?
Si l'on veut on peut enlever ceux qui sont interdépendants eux mêmes (en rouge) des données pour simplifier ...
Partager