Pbm avec requete de suppression

Le
TopBidouille
Bonjour,
encore une autre question
j'essaie de supprimer dans la table A les enregistrements correspondant de
la table B
voici ma requete
DELETE from A inner join B on (A.Nvendeur= B.Nvendeur) AND (A.Nag = B.Nag);
l'analyser de requete me dit : Syntaxe incorrecte vers le mot cle Inner..
à noter que la meme requete avec un select a la place du delete fonctionne.

-sur ma table A la clé unique est un numéro auto NUMA
-sur ma table B je n'ai pas de clé unique (je sais c'est pas bien, mais
comme c'est une table tempo)

Voila
Merci
Christophe
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Fred BROUARD
Le #11723651
On ne peut supprimer que dans une seule table à la fois, donc toute
jointure avec une autre table est interdite.
Il faut utiliser une sous requête corrélée ou la jointure à la SQL Server :

DELETE from A
WHERE A.clef IN (SELECT A.id
FROM A
inner join B
on A.Nvendeur= B.Nvendeur
AND A.Nag = B.Nag)

(norme SQL)

Ou encore :

DELETE from A
FROM A AA
inner join B
on AA.Nvendeur= B.Nvendeur
AND AA.Nag = B.Nag

Spécifique SQL Server

A +


--
Frédéric BROUARD, MVP Microsoft SQL Server. Langage SQL / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto: ******************

TopBidouille a écrit:
Bonjour,
encore une autre question
j'essaie de supprimer dans la table A les enregistrements correspondant de
la table B
voici ma requete


> DELETE from A inner join B on (A.Nvendeur= B.Nvendeur) AND (A.Nag =
B.Nag);
l'analyser de requete me dit : Syntaxe incorrecte vers le mot cle Inner..
à noter que la meme requete avec un select a la place du delete fonctionne.

-sur ma table A la clé unique est un numéro auto NUMA
-sur ma table B je n'ai pas de clé unique (je sais c'est pas bien, mais
comme c'est une table tempo...)

Voila
Merci
Christophe





Céline
Le #11723641
DELETE from A
where A.Nag IN(SELECT B.Nag
FROM B
WHERE B.Nvendeur=A.Nvendeur)

@ plus
Céline

-----Message d'origine-----
Bonjour,
encore une autre question
j'essaie de supprimer dans la table A les enregistrements


correspondant de
la table B
voici ma requete
DELETE from A inner join B on (A.Nvendeur= B.Nvendeur)


AND (A.Nag = B.Nag);
l'analyser de requete me dit : Syntaxe incorrecte vers le


mot cle Inner..
à noter que la meme requete avec un select a la place du


delete fonctionne.

-sur ma table A la clé unique est un numéro auto NUMA
-sur ma table B je n'ai pas de clé unique (je sais c'est


pas bien, mais
comme c'est une table tempo...)

Voila
Merci
Christophe



.



TopBidouille
Le #11723631
Merci
je vai tester ca de suite, je ne m'en sortais pas avec le Where A.clef In ..
a+
Christophe
TopBidouille
Le #11723611
Ok c'est nikel merci a tous le deux
Christophe
"TopBidouille" message de news:c24dot$jbn$
Merci
je vai tester ca de suite, je ne m'en sortais pas avec le Where A.clef In


..
a+
Christophe






Publicité
Poster une réponse
Anonyme