Debutant SQL

MyName -  
 mohammede -
Bonjour,
Je dois faire une rquete en SQL mais je débute seulement c'est pourquoi cette requete me parait compliquée.
J'ai 2 tables : table1 et table2
Je veux mettre à jour la table1
mettre champA de table1 est à 'A'
où champA='T'
et où l'identifiant ( champB, champC) de la table1 n'est pas present dans la table2
(la table2 possède les meme champ B et C)

Je suis completement perdu dans les imbriquation de select.
Merci d'avance de votre aide.
A voir également:

6 réponses

jpn Messages postés 6 Statut Membre
 
En fait c'est pas compliqué, c'est comme t'as dit, mais avec des mots SQL !
Normalement :

update table1 set champA = 'A' where
champ1='T' and (champB,champC) not in
(select champB,champC from table2)
0
MyName
 
A priori il aime pas le and(champB, champA) NOT IN....
j'ai comme erreur :
Elément syntaxique , n'est pas correct. Eléments possibles : < > = <
0
jpn Messages postés 6 Statut Membre
 
Aïe,
Alors, tu utilises quoi comme base de données ? Je me demande si ce que je t'ai donné ne fonctionne que pour ORACLE.
0
MyName
 
A vrai dire la Bd est sur AS400 ...
Donc a vrai dire je ne c pas du tout comment c foutu
0
KARI
 
JE VOUDRAIS SAVOIR COMMENT METTRE à JOUR AU TABLE SQL EN AS400
0

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

Posez votre question
jpn Messages postés 6 Statut Membre
 
alors effectivement ça marche pas sous DB2 ça.
Il faudrait essaye le même ordre en remplaçant le couple (champB,champC) par la chaine champB concaténé avec champC sous DB2 l'opérateur de concaténation c'est +, donc l'ordre serait :

update table1 set champA = 'A' where
champ1='T' and (champB+champC) not in
(select champB+champC from table2)

A vérifier pour les parenthèses obligatoires ou non, voire interdites.
0
MyName
 
Il ne veut pas du + :
Utilisation incorrecte de +.

J'ai essayé avec ttes les configurations possible de parentheses
0
mohammede
 
Salut,
voilà je crois qu'il faut l'écrire simplement
update table1 set champA = 'A' where
champ1='T' and champB not in
(select champB from table2) and champC not in (select champc from table2).
Bon courage.
Merci
0