Bonjour

Tout d'abord, mon travaille est d'importer des donnees de MySQL vers SQL_SERVER.

J ai un petit soucis avec une requete. Voici les tables dont j ai besoin.
J ai une table MySQL qui s'appelle "manage" avec comme attributs :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
id_manage
id_manageur
id_employe
Un manageur est un employé, l'id_manageur est un id_employe, il decrit que que l'id_employe est managé par l'id_manageur.

Ensuite j ai une table MySQL "employe", avec notement comme attribut :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
id_employe
nom
prenom
matricule
id_site
...
J ai une table SQL_SERVEUR, COLLABORATEUR qui contient aussi les employés
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
MATRICULE
NOM
PERNOM
CD_MANAGER
...
(A noter que le MATRICULE de cette table est composé du matricule de la table employé concaténé à un '-' et de l'id_site (integer) ex: MO-1)

Le probleme est que les CD_MANAGER (qui sont en fait les MATRICULE des MANAGEUR) sont faux.

J aimerai faire une requete qui modifie tout les CD_MANAGER avec les bon MATRICULE.

Pour cela j ai deja fait une requete mais elle est a moitié bancale.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
UPDATE $BDDW.COLLABORATEUR
SET CD_MANAGER  = 
(
SELECT CAST(e2.matricule+'-'+CAST(e2.id_site AS VARCHAR(1)) AS VARCHAR(10)) AS CD_MANAGER_RETURN
FROM $BDREC.manage m, $BDREC.employe e1, $BDREC.employe e2
WHERE e1.id_employe = m.id_employe
AND e2.id_employe = m.id_manageur 
AND COLLABORATEUR.MATRICULE= CAST(e1.matricule+'-'+CAST(e1.id_site AS VARCHAR(1)) AS VARCHAR(10)) 
)
Le employe e1 me sert à recuperer les donnees de mon employé
Le employe e2 me sert à recuperer les donnees de mon manageur

Le probleme c est que mon SELECT renvoi plusieurs valeurs.
Ce que je voudrais c est que ma requete parcours chaque COLLABORATEUR, et que pour chaque COLLABORATEUR, dans le SELECT on renvoi le bon matricule CAST(e1.matricule+'-'+CAST(e1.id_site AS VARCHAR(1)) AS VARCHAR(10) )

Pouvez vous m aider ?

Merci bcp a bientot