Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/01/2012, 20h19   #1
 
Inscription : janvier 2008
Messages : 8
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 8
Points : -3
Points : -3
Par défaut Procédure de regroupement des identifiants

Bonjour tout le monde,


Exemple:
dept_mgr    mgr       empno     dept_emp
  90---------100------>101-----------90
  90---------100------>124-----------50
  90---------101------>204-----------90
  50---------124------>198-----------50
On vérifie le 100 il est relié avec 101 dans le même département (90) alors il prend le 100 et 101 dans le même groupe, il vérifie la 2ieme ligne le 100 est relié avec 124 mais le 124 à un département différent alors il prend pas le 124 avec le groupe de 100, il vérifie la 3ieme ligne 101 est relié avec 204 encore ont le même département (90) alors il classe 204 avec le même groupe que le 100 puisque le 101 il est déjà classé il ne va pas le classé une autre fois mais il classe le 204, on aura le 100, 101, 204, puis il vérifie la 4ieme ligne le 124 est relié avec 198 ont le même département on aura le groupe 124, 198 et ainsi de suite....
Tout ca pour former la table:
num_groupe    manager_id      employee_id
------------------------------------------
001              100                101
001              101                204
002              124                198
J'espère que c'est bien expliqué
Merci.
canalg est déconnecté   Envoyer un message privé Réponse avec citation 06
Vieux 15/01/2012, 15h42   #2
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 313
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 3 313
Points : 5 817
Points : 5 817
Et la question est ... ?
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/01/2012, 21h13   #3
 
Inscription : janvier 2008
Messages : 8
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 8
Points : -3
Points : -3
Bonjour et merci,
Ma question est : comment construire l'algorithme pour remplir la 2iem table
canalg est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 15/01/2012, 22h03   #4
Membre Expert
 
Inscription : août 2008
Messages : 1 271
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 1 271
Points : 1 928
Points : 1 928
La question est probablement comment générer la colonne num_group.
Je ne pense pas que la requête suivante soit suffisante car elle n'est pas récursive, de plus il faudrait préciser la version d'oracle et comment on débute la colonne num_group
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
WITH t (dept_mgr,mgr,empno,dept_emp) AS (
SELECT  90,100,101,90 FROM dual union ALL
SELECT  90,100,124,50 FROM dual union ALL
SELECT  90,101,204,90 FROM dual union ALL
SELECT  50,124,198,50 FROM dual
)
SELECT dense_rank() over (ORDER BY dept_mgr DESC) AS num_group,
       mgr, empno
  FROM t
 WHERE dept_mgr = dept_emp
 ORDER BY num_group,mgr
 
 NUM_GROUP        MGR      EMPNO
---------- ---------- ----------
         1        100        101
         1        101        204
         2        124        198
skuatamad est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 07/02/2012, 01h28   #5
 
Inscription : janvier 2008
Messages : 8
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 8
Points : -3
Points : -3
Merci beaucoup c'est résolue.
canalg est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h35.


 
 
 
 
Partenaires

Hébergement Web