IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Select multi critères


Sujet :

Langage SQL

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Select multi critères
    Bonjour à tous,

    J'ai besoin de votre aide concernant une requête multi critères.
    Voici le schéma conceptuel d'un catalogue de composants attaché en pièce jointe avec un jeux de données également en pièce jointe.
    Ce schéma permet en autre de gérer les règles métiers suivantes :

    • «Un composant peut posséder plusieurs propriétés»
    • «Plusieurs composants peuvent partager une même propriété»
    • «Une propriété peut être monovaluée ou multivaluée »



    J'ai besoin d'extraire la liste des composants répondant à certains critères. Par exemple, je souhaiterai extraire les composants de type ramchip qui possèdent les propriétés type et size, propriétés pour lesquelles les valeurs sont respectivement DDR SDRAM et 1024 .
    Pour simplifier le problème je limite la recherche aux éléments possédant les propriétés type et size quelque soit leurs valeurs.

    J'arrive a extraire les composants propriété par propriété en lançant plusieurs requêtes. Par exemple la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    select distinct cp.cp_id
    from cp as cp
      inner join cp_type as cp_t
        on cp.cp_type_id = cp_t.cp_type_id
      inner join cp_prties as prties
        on cp.cp_id = prties.cp_id
    where
      cp_t.cp_type_id = "ramchip" and
      prties.prty_id = "type"
    me renvoie bien :

    • ram01
    • ram03
    • ram04


    mais dés je cumule les critères comme suit la requête ne me renvoie rien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    select distinct cp.cp_id
    from cp as cp
      inner join cp_type as cp_t
        on cp.cp_type_id = cp_t.cp_type_id
      inner join cp_prties as prties
        on cp.cp_id = prties.cp_id
    where
      cp_t.cp_type_id = "ramchip" and
      prties.prty_id = "type" and
      prties.prty_id = "size"
    Je suppose que l'on ne peut pas effectuer une jointure sur plusieurs critères portant sur une même colonne et je ne voit pas comment contourner ce problème.

    J'arrive à obtenir les résultats escomptés mais au prix d'un requête plutôt tarabiscotée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Select distinct cp.cp_id
    From cp as cp, cp_prties as prties
    Where
      cp.cp_type_id = "ramchip" and
      prties.cp_id = cp.cp_id and
      prties.prty_id = "type" and
      cp.cp_id in (Select distinct cp.cp_id
        From cp as cp, cp_prties as prties
        Where
          cp.cp_type_id = "ramchip" and
          prties.cp_id = cp.cp_id and
          prties.prty_id = "size")
    Verriez-vous un autre moyen plus propre ?
    D'autant plus que l'exemple traite un cas simple avec seulement 2 critères alors que leur nombre devrait être + important dans l'application finale.

    Un grand merci d'avance,

    Nico
    Images attachées Images attachées      

Discussions similaires

  1. SELECT multi-critères avec condition absolue
    Par wedz79 dans le forum Requêtes
    Réponses: 1
    Dernier message: 17/04/2014, 12h52
  2. Multi SELECT Selon Critères
    Par DzBadBoy dans le forum Access
    Réponses: 2
    Dernier message: 01/08/2010, 13h40
  3. Requête 3 tables - group by - select multi critères
    Par julienleg dans le forum Requêtes
    Réponses: 3
    Dernier message: 16/06/2010, 11h04
  4. Requête Select Top et Order by multi-critères en même temps.
    Par Courgette17 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 03/03/2008, 10h51
  5. Recherche multi selection (et non multi critére)
    Par ange_dragon dans le forum Modélisation
    Réponses: 12
    Dernier message: 29/05/2007, 18h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo