Bonjour à tous,
Dans ma base de données j'ai 3 tables : GROUPE, ACTION et ACTION_DONNEE.
ACTION a pour champs idenMin (clée primaire), num_action (clée primaire), et clée. Clée est la concaténation de deux champs : num_iden et num_groupe (tous deux appartenant à la table groupe).
ACTION_DONNEE a pour champs idenMin (clée primaire), num_action (clée primaire), num_donnee (clée primaire), type_action et valeur
GROUPE a pour champs num_iden (clée primaire) , num_groupe (clée primaire), type_groupe.
Suite à l'ajout de champs dans la table GROUPE (nbr_entreeGroupeTM, nbr_entreeGroupeH, nbr_entreeGroupeF ), je souhaiterais mettre à jour cette dernière. Les données utilisées pour mettre à jour ces nouveaux champs correspondent à des enregistrement situés dans la table EVT_DONNEE (valeur).
Ainsi, pour mettre à jour un des nouveaux champs, j'execute cette requête :
ce qui fonctionne trés bien. Le probléme intervient lorsque plusieurs GROUPE existent dans la base de données. Je pense donc devoir utiliser une boucle WHILE mais je ne sais comment m'y prendre.
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 update GROUPE set nbr_entreeGroupeH = (select d.valeur from action e, groupe b,action_donnee d,action_attribut a where e.clée = (b.num_iden || '|' || b.num_groupe) and e.idenMin = d.idenMin and e.num_action = d.num_action and d.type_action = a.type_action and b.type_groupe not in ('MIN') and b.type_groupe not in ('GRO') and d.type_action in(1)) where num_groupe = (select num_groupe from action e, groupe b,action_donnee d,action_attribut a where e.clée = (b.num_iden || '|' || b.num_groupe) and e.idenMin = d.idenMin and e.num_action = d.num_action and d.type_action = a.type_action and b.type_groupe not in ('MIN') and b.type_groupe not in ('GRO') and d.type_action in(1)) and num_iden = (select b.r_siret from action e, groupe b ,action_donnee d,action_attribut a where e.clée = (b.num_iden || '|' || b.num_groupe) and e.idenMin = d.idenMin and e.num_action = d.num_action and d.type_action = a.type_action and b.type_groupe not in ('MIN') and b.type_groupe not in ('GRO') and d.type_action in(1))
Quelqu'un pour m'apportait son aide?
Merci.
Partager