Bonjour,
J'essaye désespérément de faire qulequechose qui doit être simple pour qui manipule les datawarehouses mais je ne m'en sors pas.
Exemple :
tab_maitre
id status flag
1 x Y
2 x Y
3 x Nje veux mettre à jour la colonne status de tab_maitre où le flag est à 'Y' avec la concaténation des status du fils.tab_fille
id id_maitre status
1 1 a
2 1 b
3 1 c
4 2 a
5 2 b
6 3 a
Je voudrais donc :
j'ai essayé :tab_maitre
id status flag
1 abc Y
2 ab Y
3 x N
mais :
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 SELECT id_maitre, rems FROM (SELECT id_maitre, rems, MAX (LENGTH (rems)) FROM (SELECT e.id_maitre, LEAD (r.status, 1) OVER (ORDER BY r.id_maitre) || ' ' || LEAD (r.status, 2) OVER (ORDER BY r.id_maitre) || ' ' || LEAD (r.status, 3) OVER (ORDER BY r.id_maitre) || ' ' || LEAD (r.status, 4) OVER (ORDER BY r.id_maitre) || ' ' || LEAD (r.status, 5) OVER (ORDER BY r.id_maitre) || ' ' || LEAD (r.status, 6) OVER (ORDER BY r.id_maitre) rems FROM tab_fils e, tab_maitre r WHERE e.status_flag = 'Y' AND e.id_maitre = r.id_maitre ORDER BY 1) GROUP BY id_maitre, rems) ;
- le résultat semble faux
- les perfs sont pas terribles
- je ne connais pas le nombre de fils donc là j'ai été jusqu'à 6 mais rien ne me dit que ça suffit
Bref, voila un problème bien épineux et je vous serais très reconnaissant de me donner un coup de main
Partager