Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
717 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Condition d'exclusion avec not in(résolu par.... moi)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Condition d'exclusion avec not in(résolu par.... moi)

n°1735484
TAM136
Posté le 22-05-2008 à 07:48:09  profilanswer
 

Bonjour à tous,
 
 
 
Je suis totalement débutant en SQL. Je cherche à faire une requête qui me retourne une liste en excluant un élément. J’ai les deux tables suivantes:
 
Table1(classe,…)
 
Table2(fournitures,…..)
 
 
 
Si je lance la requête ci-dessous,j’obtiens la liste des classes à l’intérieur desquelles on trouve un tableau:
 

Code :
  1. select classe,fournitures
  2. from  table1 a,table2 b
  3. where a.clé table1=b.clé table2
  4. /*clé table 1=clé table2*/
  5. and fournitures=’tableau’
  6. order by classe


 
 
 
Je voudrais maintenant obtenir la liste des classes sans tableau.
 
J’ai écrit:
 
and fournitures<>’tableau’
 
ou encore :
 
and fournitures not in(select fournitures from table2 where fournitures=’tableau’)
 
Mais dans les deux cas, j’obtiens en fait la liste des classes avec leurs fournitures sauf les tableaux.
 
Par exemple, si la classe 203A dispose entre autres d’un tableau, de bureaux, de chaises…,cette classe ressortira mais dans les fournitures n’apparaîtra pas le tableau. Je précise que je n’ai pas de colonne comptabilisant les fournitures du type :
 
 
 
Classe                   fournitures                        Nombre
 
203A                     tableau                              1
 
203A                     bureaux                              32
 
 
 
Voici mon tableau
 
 
 
classe                   fournitures
 
203A                     tableau
 
203A                     bureau
 
203A                     bureau
 
204                        écran
 
204                        chaise
 
204                        chaise
 
...........
 
205                         placard
 
206                        tableau
 
…..
 
Il y a autant de lignes qu’il y a de fournitures (je sais qu’avec As que je peux avoir le résultat précédent:1,32..). Ici, je voudrais que ressortent uniquement les salles 204 et 205 puisqu'on ne trouve pas de tableau dans celles-ci.
 
Merci d'avance


Message édité par TAM136 le 26-05-2008 à 14:35:27
mood
Publicité
Posté le 22-05-2008 à 07:48:09  profilanswer
 

n°1735515
anapajari
s/travail/glanding on hfr/gs;
Posté le 22-05-2008 à 09:54:01  profilanswer
 

Code :
  1. SELECT
  2. DISTINCT classe
  3. FROM
  4.  table1 a
  5.  INNER JOIN table2 b ON a.id=b.id1
  6. WHERE
  7.  NOT EXISTS (
  8.    SELECT
  9.      c.id1
  10.    FROM
  11.      table2 c
  12.    WHERE
  13.      c.id1 = a.id AND c.fournitures = 'tableau'
  14.  )


aux erreurs de syntaxe près

Message cité 1 fois
Message édité par anapajari le 22-05-2008 à 09:54:22

---------------
Software and cathedrals are much the same - first we build them, then we pray.
n°1735618
TAM136
Posté le 22-05-2008 à 12:35:58  profilanswer
 

anapajari a écrit :

Code :
  1. SELECT
  2. DISTINCT classe
  3. FROM
  4.  table1 a
  5.  INNER JOIN table2 b ON a.id=b.id1
  6. WHERE
  7.  NOT EXISTS (
  8.    SELECT
  9.      c.id1
  10.    FROM
  11.      table2 c
  12.    WHERE
  13.      c.id1 = a.id AND c.fournitures = 'tableau'
  14.  )


aux erreurs de syntaxe près


 
Bonjour,
 
Merci d'avoir répondu rapidement mais malheureusement, cette requête me retourne uniquement la liste des classes,c'est-à-dire que le code est équivalent à

Code :
  1. select distinct classe
  2. from table 1

n°1735636
anapajari
s/travail/glanding on hfr/gs;
Posté le 22-05-2008 à 13:11:22  profilanswer
 

c'est quoi la structure exacte de tes 2 tables?


---------------
Software and cathedrals are much the same - first we build them, then we pray.
n°1737217
TAM136
Posté le 26-05-2008 à 14:33:57  profilanswer
 

anapajari a écrit :

c'est quoi la structure exacte de tes 2 tables?


 
Merci de t'être penché sur mon cas mais à force de réfléchir, j'ai résolu mon problème.
 

Code :
  1. select classe
  2. /*J'avais écrit classe,fournitures ce qui me créait deux colonnes*/
  3. from  table1
  4. /*De fait je n'ai plus besoin de from  table1 a,table2 b*/
  5. where classe not in(select distinct classe from table1 a,table2 b where a.clé table1=b.clé table2 and fournitures='tableau')
  6. order by classe


 
Merci encore


Message édité par TAM136 le 26-05-2008 à 14:34:21
n°1981915
tony-974
Humble motard, c'est rare
Posté le 08-04-2010 à 11:29:57  profilanswer
 

Bonjour,
Je suis débutant également et je suis assez coincé par un petit problème.
 

Code :
  1. SELECT count(*), D.Title
  2. FROM T_DVD D, T_LOCATION L
  3. WHERE D.id_dvd=L.id_dvd
  4. GROUP BY D.id_dvd
  5. ORDER BY count(*) DESC


 
J'ai un id_dvd qui arrive en tête qui correspond au titre "DVD EN RETARD" et j'aimerai exclure cette ligne des résultats.
 
Merci de votre aide


Message édité par tony-974 le 08-04-2010 à 11:32:34

---------------
¤ JOE BAR TEAM ¤
n°1981922
tony-974
Humble motard, c'est rare
Posté le 08-04-2010 à 11:42:18  profilanswer
 

Merci, désolé pour cette question "bête"
Cela fonctionne :
 

Code :
  1. SELECT count(*), D.Title
  2. FROM T_DVD D, T_LOCATION L
  3. WHERE D.id_dvd=L.id_dvd
  4. AND L.id_dvd <> 000001 /*Numéro identifiant à exclure*/
  5. GROUP BY D.id_dvd
  6. ORDER BY count(*) DESC


---------------
¤ JOE BAR TEAM ¤

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Condition d'exclusion avec not in(résolu par.... moi)

 

Sujets relatifs
[RESOLU]Requête multiple ... avant petage de plomb[RESOLU] expression régulière
[Résolu]Authentification par JDBC Realm[Résolu] MIME type
[Résolu] lecture fichier ruby!Onchang/select/menu[RESOLU]thx
Probleme récupération valeur d'un select[Résolu]Tableau d'images cliquables[Résolu]
[Résolu] [Java/Jsp] La ressource demandée n'est pas disponiblepour que @Before devine le test en cours [resolu]
Plus de sujets relatifs à : Condition d'exclusion avec not in(résolu par.... moi)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR