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 :

Comparaison de valeurs stockees dans un meme champ


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 93
    Points : 47
    Points
    47
    Par défaut Comparaison de valeurs stockees dans un meme champ
    Bonjour,

    j'ai les 2 tables suivantes sur lesqueles je genere des rapports(requete SQL)

    Table COST
    --------------------
    ID | CLASS
    --------------------
    1 | AC
    2 | CB
    3 | F2
    .

    ----------------------------
    Table COSTSET
    -----------------------------
    ID | SET
    ----------------------------
    Set1 | AC, CB, P8, AV
    Set2 | F1, F2, F3
    Set3 | P2,P4

    J'ai actuellement une requete de la forme suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT CLASS 
    FROM COST
    WHERE CLASS IN ("AC","CB","P8","AV")
    En fait les valeurs dans mon statement IN () correspondent a mon SET1. Le probleme c'est que le contenu de ce SET1 peut changer.

    Donc je souhaiterais rendre ma requete un peu plus flexible en precisant simplement le nom de mon set.
    Je souhaiterais quelque chose dans ce genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT C.CLASS 
    FROM COST C, COSTSET CS
    WHERE C.CLASS IN (CS.SET1)
    Mais ca ne marche pas car le statement IN n'accepte que des valeurs entre guillemets

    Est-ce que vous pensez que c'est possible?
    Merci

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Points : 886
    Points
    886
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT C.CLASS 
    FROM (COST C
    INNER JOIN COSTSET CS ON CS.SET1 = C.CLASS)
    Devrait aller comme ca

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2002
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 35
    Points : 36
    Points
    36
    Par défaut
    ... Ou par un select imbriqué... Certainement pas terrible niveau optimisation mais pas mal intuitif et compréhensible :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT C.CLASS 
    FROM COST C
    WHERE C.CLASS IN (SELECT CS.SET FROM COSTSET CS  WHERE CS.ID = "Set1")

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 93
    Points : 47
    Points
    47
    Par défaut
    J'ai teste les 2 methodes ci-dessus mais ca ne marche pas. La requete s'execute correctement mais ca ne me retourne rien...

    En placant les valeurs mauellement dans la requete cela fonctionne bien.

    Une idee?

  5. #5
    Membre habitué
    Inscrit en
    Mars 2004
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 126
    Points : 151
    Points
    151
    Par défaut
    salut.
    Sous SQL SERVER

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT C.CLASS
      FROM COST C
      INNER JOIN COSTSET CS 
        ON ( CHARINDEX(C.CLASS, CS.SET1 ) > 0 )

Discussions similaires

  1. Plusieurs valeurs dans un meme champ (Access 2002)
    Par Matgic95 dans le forum Modélisation
    Réponses: 11
    Dernier message: 14/03/2008, 10h23
  2. insertion multiples dans un meme champ
    Par fétémété dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 13/07/2006, 16h16
  3. Réponses: 4
    Dernier message: 12/06/2006, 11h46
  4. Réponses: 5
    Dernier message: 26/04/2006, 07h51
  5. plusieurs reponses dans un meme champ
    Par Clelia dans le forum Access
    Réponses: 2
    Dernier message: 25/12/2005, 22h54

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