Pb Requête UPDATE ds SQL SERVER

cs_sebas34500 Messages postés 9 Date d'inscription mercredi 28 juillet 2004 Statut Membre Dernière intervention 26 septembre 2005 - 14 sept. 2004 à 11:21
cs_omega081 Messages postés 1 Date d'inscription lundi 27 septembre 2004 Statut Membre Dernière intervention 30 novembre 2008 - 30 nov. 2008 à 15:16
Je désire faire une requête UPDATE dans SQL SERVER d'une table 4 vers une table nommée F_COMPTET. Mon code est le suivant :

UPDATE F_COMPTETSET F_COMPTET.N_Period SELECT Table4.N_Period FROM Table4 WHERE (Table4.CT_Num F_Comptet.CT_Num))

La clause WHERE est présente pour updater seulement les écritures où le CT_Num est le même dans les 2 tables.

Lors du lancement de la procédure, j'ai le message d'erreur suivant :

Serveur : Msg 512, Niveau 16, Etat 1, Ligne 4.
La sous-requête a retourné plusieurs valeurs. Cela n'est pas autorisé quand la sous-requête suit =, !=, <, <=, >, >= ou quand elle est utilisée en tant qu'expression.

J'ai vérifié que les 2 tables ne comportaient pas de doublons. Je pense avoir un problème dans ma clause WHERE mais je ne sais le résoudre.

Quelqu'un peut-il m'aider ????

Merci !

SEBAS

5 réponses

cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
14 sept. 2004 à 14:36
Salut Seb,

Essais plutot comme ca :

UPDATE F_COMPTET
SET t.N_Period = s.N_Period
FROM F_COMPTET t, Table4 s
WHERE t.CT_Num = s.CT_Num

:-p [mailto:cyberscorp2004@msn.com MSN] :big) [mailto:frop01@yahoo.fr YAHOO] >:)

Membre du club CodeS-SourceS
0
cs_sebas34500 Messages postés 9 Date d'inscription mercredi 28 juillet 2004 Statut Membre Dernière intervention 26 septembre 2005
14 sept. 2004 à 15:01
Salut Frop01 !!! Déjà merci pour les services rendus !

Pour ce qui est de du dernier essai, j'ai un message "mpossible d'utiliser le préfixe de colonne "t". Il doit correspondre à l'objet de la clause UPDATE 'F_COMPTET' "

SEBAS
0
cs_sebas34500 Messages postés 9 Date d'inscription mercredi 28 juillet 2004 Statut Membre Dernière intervention 26 septembre 2005
14 sept. 2004 à 15:14
Salut Frop01 !!! Déjà merci pour les services rendus !

Pour ce qui est de du dernier essai, j'ai un message "mpossible d'utiliser le préfixe de colonne "t". Il doit correspondre à l'objet de la clause UPDATE 'F_COMPTET' "

SEBAS
0
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
14 sept. 2004 à 15:43
plus simple :

1/ Créer une requete enregistré sous le nom de R1 qui contient :


SELECT [F_COMPTET].[CT_Num], [F_COMPTET].[N_Period] AS ch1, [Table4].[N_Period] AS ch2
FROM F_COMPTET, Table4
WHERE [F_COMPTET].[CT_Num]=[Table4].[CT_Num];



2/ Créer une deuxième requete R2 qui contient:


UPDATE r1 SET ch1 = [ch2];



et voila .

:-p [mailto:cyberscorp2004@msn.com MSN] :big) [mailto:frop01@yahoo.fr YAHOO] >:)

Membre du club CodeS-SourceS
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_omega081 Messages postés 1 Date d'inscription lundi 27 septembre 2004 Statut Membre Dernière intervention 30 novembre 2008
30 nov. 2008 à 15:16
j'ai rencontre le meme probleme, mais la sous requette retourne plus de une valeur:

update f_clientc
set interdit=0
where part =
(select substring(part,1,5)
            from chqimpaye
            where D_fin<'30/11/2008')
       
Merci !
0
Rejoignez-nous