Remonter d'une table générale à une table de tri (requete)

Résolu
cs_clenio Messages postés 26 Date d'inscription mardi 14 janvier 2003 Statut Membre Dernière intervention 28 novembre 2006 - 6 mars 2006 à 16:02
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 - 10 mars 2006 à 09:54
Bonjour

Je me suis créer une base de données pour stocker les nomenclatures de mes cartes électroniques ( 2ème passe tps avec l'info ).
Donc j'ai 2 tables. La premiere "Composant" qui liste tous les composants que j'utilise (description, réf fournisseur, fournisseur, une info True/False si obsolète). La deuxième ("All") liste les nomenclatures de mes cartes (nom carte, repère, réf fournisseur, quantité, un champ d'info complémentaire).

La réf. fournisseur est l'index de la table "Composant", la deuxième n'etant pas indexée.

Pour pouvoir supprimer facilement une nomenclature, je voudrais à partir d'une requète supprimer (directement ou qu'elle me donne une liste) les composants qui ne sont utilisés QUE par la carte que je supprime de la première table ("Composant").

ex:
Table Composant
Ref | Descrip | ...
R10345 | 10KOHM 5 % 1/4W | ...
C479 | 47nF 10% 50V 805 | ...

Table All
Rep | Ref | Carte
R24 | R10325 | PJTI5
R102 | R27185 | PJTI5
C10 | C479 | MOD_DTMF
R38 | R10325 | MOD_DTMF

Dans le cas présent, si je supprime la carte MOD_DTMF, il faudrait enlever le composant référencé C479, mais pas R10325 (car utilisé sur PJTI5) de la table "Composant".

merci d'avance.
Clénio

5 réponses

aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
9 mars 2006 à 18:36
salut

essaie :
DELETE FROM TableComposant
WHERE Ref IN (SELECT Ref FROM TableAll WHERE Carte = 'MOD_DTMF')


AND Ref NOT IN (SELECT Ref FROM TableAll WHERE Carte <> 'MOD_DTMF')

ca va (normalement :)) supprimer les references concernant la carte MOD_DTMF sans supprimer ceux qui concernent egalement une autre carte.
3
mictif Messages postés 105 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 14 février 2013 2
6 mars 2006 à 17:15
bonjour ! essais un truc dans le genre :

DELTE FORM (Table Composant] where ref not in (select ref from [Table All])
0
cs_clenio Messages postés 26 Date d'inscription mardi 14 janvier 2003 Statut Membre Dernière intervention 28 novembre 2006
8 mars 2006 à 14:49
Désolé mais ca marche pas. Ca me donne des erreurs (malgré la mise au propre du code).

J'ai essayé avec :
- INTERSECT
peut s'écrire : SELECT a,b FROM table1
WHERE EXISTS (SELECT c,d FROM table2 WHERE a=c AND b=d )

- EXCEPT
peut s'écrire : SELECT a,b FROM table1
WHERE NOT EXISTS ( SELECT c,d FROM table2 WHERE a=c AND b=d )

mais non, ca marche pas!

Si personne n'a d'autres idées, ba ... ca m'embeterait mais bon !
0
cs_clenio Messages postés 26 Date d'inscription mardi 14 janvier 2003 Statut Membre Dernière intervention 28 novembre 2006
10 mars 2006 à 08:36
nikel merci :)

en 2 étapes, je fais ce que je veux. merci bcp aieeeuuuuu!
0

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

Posez votre question
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
10 mars 2006 à 09:54
de rien ;)
0
Rejoignez-nous