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 :

[requête] Je ne vois pas comment faire


Sujet :

Langage SQL

  1. #1
    Membre confirmé Avatar de Satch
    Homme Profil pro
    Hypnothérapeute - Magicien
    Inscrit en
    Mars 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Hypnothérapeute - Magicien

    Informations forums :
    Inscription : Mars 2004
    Messages : 498
    Points : 645
    Points
    645
    Par défaut [requête] Je ne vois pas comment faire
    Bonjour,
    Je poste rarement dans ce forum... Mais comme j'ai toujours eu beaucoup de mal en SQL me voici...

    Je ne sais pas pourquoi j'ai toujours eu de la peine a élaborer des requêtes. Si vous êtes d'attaque j'aimerai vous soumettre mon problème (simplifié à l'extrème)

    J'ai 2 tables :
    - une table Truc qui a les champs idTruc, libelle, idGoupe, trucPrincipal.
    le champ trucPrincipal est un booleen.

    et une table groupe qui a un idGroupe et d'autres infos qui ne nous interressent pas ici.

    Dit en français, on a des groupes de trucs, et dans chaque groupe il y a forcément un truc principal.

    Je dois faire une requête qui me sort tous les trucs avec les contraintes suivantes :
    - le truc est un truc principal et son libelle est "blabla"
    - le truc n'est pas un truc principal mais le truc principal du groupe correspondant a le libelle "blabla"

    Je précise que les tables sont ce qu'elles sont et que je ne peux pas les changer.
    Je dois aussi autant que possible le faire en une seule requête. Le nombre d'enregistrement est impressionnant et chaque requête prend un temps précieux.

    je tourne en rond et je ne vois pas comment sortir de là.

    Merci de votre aide.
    Je sais que désormais vivre est un calembour,
    La mort est devenue un état permanent,
    Le monde est aux fantômes, aux hyènes et aux vautours.
    Moi je vous dis bravo et vive la mort.

  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 782
    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 782
    Points : 52 783
    Points
    52 783
    Billets dans le blog
    5
    Par défaut
    Merci de respecter ceci :
    http://www.developpez.net/forums/showthread.php?t=944

    et donc de nous fournir le DDL SQL de vos tables aisni qu'un jeu d'essais sous la forme d'ordre INSERT et le résultat que vous voulez obtenir.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre confirmé Avatar de Satch
    Homme Profil pro
    Hypnothérapeute - Magicien
    Inscrit en
    Mars 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Hypnothérapeute - Magicien

    Informations forums :
    Inscription : Mars 2004
    Messages : 498
    Points : 645
    Points
    645
    Par défaut
    Je m'excuse.

    Je ne suis pas sur une BD particulière, celà doit tourner (en principe) n'importe où.

    Voici donc de quoi créer ce cas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     CREATE TABLE Truc
    (idTruc INTEGER,
     trucPrincipal CHAR(1),
     libelle VARCHAR (255),
     idGroupe INTEGER,
     CONSTRAINT PK_Truc PRIMARY KEY (idTruc));
     
    CREATE TABLE Groupe
    (idGroupe INTEGER,
     CONSTRAINT PK_Groupe PRIMARY KEY (idGroupe));
    Dans la table Truc, trucPrincipal peut prendre la valeur 0 ou 1 (faux ou vrai)

    Et un jeu de données

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    INSERT INTO Groupe (idGroupe) 
    VALUES (1);
    INSERT INTO Groupe (idGroupe) 
    VALUES (2);
     
    INSERT INTO Truc (idTruc, TrucPrincipal, libelle, idGroupe)
    VALUES (1, 0, 'qqch1', 1);
    INSERT INTO Truc (idTruc, TrucPrincipal, libelle, idGroupe)
    VALUES (2, 1, 'blabla', 1);
    INSERT INTO Truc (idTruc, TrucPrincipal, libelle, idGroupe)
    VALUES (3, 0, 'blabla', 2);
    INSERT INTO Truc (idTruc, TrucPrincipal, libelle, idGroupe)
    VALUES (4, 1, 'qqch2', 2);
    Donc, pour résumer encore une petite fois, je dois avoir tous les trucs dont le truc principal du groupe a le libellé "blabla".

    Autrement dit, je devrais avoir cette sortie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    -- Le résultat attendu :
    idTruc   
    ------
    1
    2
    (désolé pour le non respect des règles )
    Je sais que désormais vivre est un calembour,
    La mort est devenue un état permanent,
    Le monde est aux fantômes, aux hyènes et aux vautours.
    Moi je vous dis bravo et vive la mort.

  4. #4
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 644
    Points
    4 644
    Par défaut
    salut

    essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select id_truc from truc 
    where id_groupe = 
    (select id_groupe from truc 
    where libelle='blabla' and trucprincipal =1)

  5. #5
    Membre confirmé Avatar de Satch
    Homme Profil pro
    Hypnothérapeute - Magicien
    Inscrit en
    Mars 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Hypnothérapeute - Magicien

    Informations forums :
    Inscription : Mars 2004
    Messages : 498
    Points : 645
    Points
    645
    Par défaut
    Je n'ai pas testé mais ça devrait marcher...

    Vous voyez, c'est quand je vois ce genre de réponse simple à un truc que je pensais compliqué que j'ai envie de me taper la tête sur les murs.

    Merci beaucoup.

    Un jour viendra ou je saurai requêter !! Je le jure !
    Je sais que désormais vivre est un calembour,
    La mort est devenue un état permanent,
    Le monde est aux fantômes, aux hyènes et aux vautours.
    Moi je vous dis bravo et vive la mort.

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

Discussions similaires

  1. Je ne vois pas comment faire là
    Par DotNET74 dans le forum Windows Phone
    Réponses: 1
    Dernier message: 14/07/2012, 23h06
  2. Requête XQuery -> Je vois pas comment faire
    Par MeTaLCaM dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 23/03/2010, 19h28
  3. Je ne vois pas comment faire cette requete
    Par figatelliSTI dans le forum Langage SQL
    Réponses: 5
    Dernier message: 14/08/2008, 11h56
  4. [XML] Je ne sais pas comment faire...
    Par New dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 11/10/2005, 10h47
  5. Impact de balles, trace de pas... Comment faire???
    Par supergrey dans le forum DirectX
    Réponses: 1
    Dernier message: 15/07/2004, 13h46

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