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 avec conditions


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 69
    Points : 45
    Points
    45
    Par défaut Requête avec conditions
    Bonjour, je viens de passer du temps à l'élaboration d'un requête SQL.

    Je vous présente ma structure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    id   Nom          B_A   E_D   TYPE
    ---------------------------------------
    1    dossier1     1       1      INT
    2    dossier2     1       2      INT
    3    dossier3     0       1      INT
    4    dossier4     1       1      COV
    5    dossier5     1       3      INT
    Id = int
    Nom = Varchar
    B_A = 0 ou 1
    E_D = int
    TYPE = INT ou COV ou FRE....

    Voila ma requête : Je voudrais afficher chaque type de dossier (INT et COV) qui ont un B_A=1 et en cas de plusieurs choix dans le même type, prendre le E_D le plus grand.

    Autrement dit :
    J'élimine l'id 3 car il est en B_A = 0.
    Dans les types, je regarde dans le COV, j'en ai qu'un, je le prend.
    Dans les INT, j'en ai 3 mais je garde que le l'id5 car c'est lui le plus grand E_D.


    Je dois pouvoir afficher seulement dossier 4 et dossier 5.

    Voici mon test de requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id, nom, B_A, TYPE, Max(E_D) FROM folder WHERE B_A="1" GROUP BY  d, nom, B_A, TYPE
    Cela me renvoi les résultats 1, 2 , 4 et 5...

    Merci beaucoup de votre aide

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 091
    Points : 28 362
    Points
    28 362
    Par défaut
    Une petite recherche sur le forum t'aurait certainement permis de trouver une requête approchante...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    SELECT  id
        ,   nom
        ,   b_a
        ,   type
        ,   e_d 
    FROM    folder  AS f1 
    WHERE   b_a = '1'
        AND EXISTS
            (   SELECT  1
                FROM    folder   AS f2
                WHERE   f1.b_a  = f2_b_a
                    AND f1.type = f2.type
                HAVING  f1.e_d  = MAX(f2.e_d)
            ) 
    ;
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 69
    Points : 45
    Points
    45
    Par défaut
    Merci beaucoup, cela fonctionne parfaitement.

    ça reste une requête assez complexe tout de même.

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

Discussions similaires

  1. [MySQL] Requête avec condition sur un champ
    Par nonhosonno dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/02/2007, 14h00
  2. [MySQL] pb de requête avec conditions, débutant
    Par carelha dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 30/11/2006, 19h35
  3. Requête avec condition
    Par lolo_bob2 dans le forum Access
    Réponses: 1
    Dernier message: 08/06/2006, 19h59
  4. [Requête]Requête avec condition
    Par Miles Raymond dans le forum PostgreSQL
    Réponses: 9
    Dernier message: 23/05/2006, 08h30
  5. Calcul requête avec conditions multiples
    Par Phullbrick dans le forum Access
    Réponses: 7
    Dernier message: 18/04/2006, 13h45

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