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 :

Requete recursive .. ou pas ?


Sujet :

Langage SQL

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2010
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Requete recursive .. ou pas ?
    Bonjour,
    J'ai une table qui comporte les champs "id" et "type".
    id1 type1
    id1 type2
    id1 type3
    id2 type1
    id2 type2
    id3 type1
    ...
    J'ai besoin, selon une sélection par checkbox en amont d'extraire les id qui ont et le type1 et le type2 (id1 et id2 dans mon exemple), ou alors ceux qui ont type1, type2 et type3(id1).
    Est-ce qu'il existe une manière simple de faire cette extraction ?
    Merci pour votre aide !

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 879
    Points : 53 057
    Points
    53 057
    Billets dans le blog
    6
    Par défaut
    Au passage c'est une idée stupide que de donner pour nom à une colonne un mot clef de SQL comme TYPE, cela vous oblige à une syntaxe particulière juste pour ce nom de colonne...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE TABLE TT (id VARCHAR(8), "type" VARCHAR(8));
    GO
     
    INSERT INTO TT VALUES ('id1','type1'), ('id1','type2'), ('id1','type3'), ('id2','type1'), ('id2','type2'), ('id3','type1');
    GO
    -- J'ai besoin, selon une sélection par checkbox en amont d'extraire les id qui ont et le type1 et le type2 (id1 et id2 dans mon exemple)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT id
    FROM   TT
    WHERE  "type" IN ('type1', 'type2')
    GROUP  BY id
    HAVING COUNT(DISTINCT "type") = 2
    -- ou alors ceux qui ont type1, type2 et type3(id1).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT id
    FROM   TT
    WHERE  "type" IN ('type1', 'type2', 'type3')
    GROUP  BY id
    HAVING COUNT(DISTINCT "type") = 3
    A +

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2010
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    C'est génial !!!
    Les champs "id" et "type" étaient simplement pour l'exemple
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requete ne marchant pas chez 1and1 mais en local
    Par Alain15 dans le forum Requêtes
    Réponses: 1
    Dernier message: 04/06/2006, 19h50
  2. Requete ne passe pas sous Sql 2005
    Par dd16 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 02/06/2006, 13h03
  3. requete recursive ( connect prior by)
    Par smedini dans le forum Oracle
    Réponses: 4
    Dernier message: 08/11/2005, 17h16
  4. Réponses: 2
    Dernier message: 12/01/2005, 23h08
  5. probleme avec requete sql aime pas les strings
    Par lil_jam63 dans le forum Bases de données
    Réponses: 3
    Dernier message: 24/02/2004, 14h45

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