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

SQL Firebird Discussion :

requête problème d'occurence


Sujet :

SQL Firebird

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 720
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 720
    Par défaut requête problème d'occurence
    BONJOUR A TOUS
    je suis confronter à encore un autre pb de groupage.Après lecture des cours sur le sql je suis
    arrivé à la requête suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    SELECT PG_MAN.COURS, PG_MAN.CODE_PGMAN, PG_MAN.NOM_MAN,
    ECOLE.NOM_EC, DREN.NOM_DREN, IEP.NOM_IEP
    FROM IEP
       INNER JOIN ECOLE ON (IEP.NOM_IEP = ECOLE.IEP_NOM_IEP)
       INNER JOIN COGES ON (ECOLE.COGES_NOM_COGES4 = COGES.NOM_COGES)
       INNER JOIN PG_MAN ON (COGES.NOM_COGES = PG_MAN.COGES_NOM_COGES6)
       INNER JOIN DREN ON (ECOLE.DREN_NOM_DREN = DREN.NOM_DREN)
    WHERE ECOLE.NOM_EC ='ABRONAMOUE-1'
    AND ANSCO_BES_MAN='2002-2003'
    ORDER BY PG_MAN.COURS
    On voit bien là qu'il s'agit d'une jointure faite avec 4 tables j'ai le resultat suivant qui
    correspond bien à ma demande:
    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
    16
    17
    18
    19
    20
     
    +--------------------------------------------------------|---------------|-----------+
    |COURS  CODE_PGMAN  NOM_MAN                 ECOLE.NOM_EC | DREN.NOM_DREN |IEP.NOM_IEP|
    +--------------------------------------------------------|---------------|-----------+
     CE              9  HIST/GEO                ABRONAMOUE-1 | ABENGOUROU    |ABENGOUROU 1  
     CE             10  SC/TEC                  ABRONAMOUE-1 | ABENGOUROU    |ABENGOUROU 1  
     CE1             5  FRANCAIS                ABRONAMOUE-1 | ABENGOUROU    |ABENGOUROU 1  
     CE1             6  MATHEMATIQUE            ABRONAMOUE-1 | ABENGOUROU    |ABENGOUROU 1  
     CE2             7  FRANCAIS                ABRONAMOUE-1 | ABENGOUROU    |ABENGOUROU 1  
     CE2             8  MATHEMATIQUE            ABRONAMOUE-1 | ABENGOUROU    |ABENGOUROU 1  
     CM             15  HIST/GEO                ABRONAMOUE-1 | ABENGOUROU    |ABENGOUROU 1  
     CM             16  SC/TEC                  ABRONAMOUE-1 | ABENGOUROU    |ABENGOUROU 1  
     CM1            11  FRANCAIS                ABRONAMOUE-1 | ABENGOUROU    |ABENGOUROU 1  
     CM1            12  MATHEMATIQUE            ABRONAMOUE-1 | ABENGOUROU    |ABENGOUROU 1  
     CM2            13  FRANCAIS                ABRONAMOUE-1 | ABENGOUROU    |ABENGOUROU 1  
     CM2            14  MATHEMATIQUE            ABRONAMOUE-1 | ABENGOUROU    |ABENGOUROU 1  
     CP1             1  FRANCAIS                ABRONAMOUE-1 | ABENGOUROU    |ABENGOUROU 1  
     CP1             2  MATHEMATIQUE            ABRONAMOUE-1 | ABENGOUROU    |ABENGOUROU 1  
     CP2             3  FRANCAIS                ABRONAMOUE-1 | ABENGOUROU    |ABENGOUROU 1  
     CP2             4  MATHEMATIQUE            ABRONAMOUE-1 | ABENGOUROU    |ABENGOUROU 1
    Mon pb est le suivant quand on regarde bien la colonne cours le nom se repette deux fois
    normal puisque deux informations sont rentrées pour le même cours.
    est ce qu'il n'est pas possible d'avoir une requête qui me donnera une une seule occurence
    par cours c'est à dire:

    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
    16
    17
    18
    19
    20
     
    +--------------------------------------------------------|---------------|-----------+
    |COURS  CODE_PGMAN  NOM_MAN                 ECOLE.NOM_EC | DREN.NOM_DREN |IEP.NOM_IEP|
    +--------------------------------------------------------|---------------|-----------+
     CE              9  HIST/GEO                ABRONAMOUE-1 | ABENGOUROU    |ABENGOUROU 1  
                    10  SC/TEC                  ABRONAMOUE-1 | ABENGOUROU    |ABENGOUROU 1  
     CE1             5  FRANCAIS                ABRONAMOUE-1 | ABENGOUROU    |ABENGOUROU 1  
                     6  MATHEMATIQUE            ABRONAMOUE-1 | ABENGOUROU    |ABENGOUROU 1  
     CE2             7  FRANCAIS                ABRONAMOUE-1 | ABENGOUROU    |ABENGOUROU 1  
                     8  MATHEMATIQUE            ABRONAMOUE-1 | ABENGOUROU    |ABENGOUROU 1  
     CM             15  HIST/GEO                ABRONAMOUE-1 | ABENGOUROU    |ABENGOUROU 1  
                    16  SC/TEC                  ABRONAMOUE-1 | ABENGOUROU    |ABENGOUROU 1  
     CM1            11  FRANCAIS                ABRONAMOUE-1 | ABENGOUROU    |ABENGOUROU 1  
                    12  MATHEMATIQUE            ABRONAMOUE-1 | ABENGOUROU    |ABENGOUROU 1  
     CM2            13  FRANCAIS                ABRONAMOUE-1 | ABENGOUROU    |ABENGOUROU 1  
                    14  MATHEMATIQUE            ABRONAMOUE-1 | ABENGOUROU    |ABENGOUROU 1  
     CP1             1  FRANCAIS                ABRONAMOUE-1 | ABENGOUROU    |ABENGOUROU 1  
                     2  MATHEMATIQUE            ABRONAMOUE-1 | ABENGOUROU    |ABENGOUROU 1  
     CP2             3  FRANCAIS                ABRONAMOUE-1 | ABENGOUROU    |ABENGOUROU 1  
                     4  MATHEMATIQUE            ABRONAMOUE-1 | ABENGOUROU    |ABENGOUROU 1
    Dans ce cas on voit bien le cours se repette une seul fois et non deux fois par ligne.
    voici donc exposé mon pb.
    je me suis dit que je pouvait faire un formatage pour afficher au niveau de mon etat
    (je bosse avec windev 9 et firebird 1.5.3), j'ai tout essayé mais rien ! je cherche encore.
    Merci à tous pour vos reponses et suggestion.

  2. #2
    Membre confirmé Avatar de maamar1979
    Inscrit en
    Mai 2006
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 174
    Par défaut
    je pense qu'il n'existe pas d'instruction SQL qui permet cela, je te propose de cree une table temportaire dans laquel tu stock le resultat de la requette, tu parcours la table ligne par ligne, tu compare et tu efface les champs en double, puis tu utilise cette meme table pour afficher.

    voici un codepermettant de parcourir la table temporaire et d'effaver les doublons (j'ai pas tester) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    table1.first;
    enregCourant:=table1.fieldbyname('cours').asstring; //enregistre le dernier cours
    table1.next;
    while not table1.eof do
    begin
     
     if table1.fieldbyname('cours').asstring = enregCourant then //verifie si c'est identique ou non par rapport au dernier cours
     table1.fieldbyname('cours').clear
     else
     enregCourant:=table1.fieldbyname('cours').asstring ;
     
    table1.next
    end;
    nb: tu doit laisser ta table trier par le champ "cours" biensur !
    salam

  3. #3
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 720
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 720
    Par défaut
    ok merci pour ta prosition mais mon pb vient en faite du formatage et voici un lien important qui m'a aider à comprendre
    Les erreurs les plus fréquentes en SQL en particulier : 9. Cosmétique..

  4. #4
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 720
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 720

  5. #5
    Membre confirmé Avatar de maamar1979
    Inscrit en
    Mai 2006
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 174
    Par défaut
    merci pour le lien c'est tres interessant
    salam

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

Discussions similaires

  1. [Requête]Problème avec ORDER BY NZ
    Par arnaud_verlaine dans le forum C++Builder
    Réponses: 5
    Dernier message: 20/11/2006, 20h27
  2. [Requête] Problème avec Distinct
    Par Gamleur84 dans le forum Langage SQL
    Réponses: 9
    Dernier message: 04/02/2006, 01h40
  3. [Requête] Problème INSERT INTO
    Par lerico dans le forum Requêtes et SQL.
    Réponses: 22
    Dernier message: 10/01/2006, 17h12
  4. [Requête]Problème de moyenne
    Par Angath dans le forum Langage SQL
    Réponses: 7
    Dernier message: 05/10/2005, 23h58
  5. [Requête] Problème avec fonction "DATE_FORMAT()"
    Par sekiryou dans le forum Requêtes
    Réponses: 4
    Dernier message: 11/01/2005, 21h52

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