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

Requêtes et SQL. Discussion :

[A-00] Regroupements dans une requête


Sujet :

Requêtes et SQL.

  1. #1
    Membre habitué
    Avatar de DamKre
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2007
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2007
    Messages : 495
    Points : 184
    Points
    184
    Par défaut [A-00] Regroupements dans une requête
    Bonjour.

    J'aimerais créer une requête, avec des sommes de certaines valeurs.
    Le reste se regroupe automatiquement.

    J'ai mis ceci :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT Attributions.Classification, Attributions.Code, Attributions.CodesOrientations, Sum(Attributions.[Heures totales]) AS [SommeDeHeures totales], Sum(Attributions.[Heures prestées]) AS [SommeDeHeures prestées], Attributions.Situation, Attributions.FonctionCode, Attributions.Titre, Attributions.Id_Pers
    FROM Attributions
    GROUP BY Attributions.Classification, Attributions.Code, Attributions.CodesOrientations, Attributions.Situation, Attributions.FonctionCode, Attributions.Titre, Attributions.N°, Attributions.Id_Pers
    HAVING (((Attributions.N°)<>0))
    ORDER BY Attributions.Code;

    L'ennui, c'est que certaines lignes ne se regroupent pas, comme le montre la capture d'écran suivante :


    Il y a donc trois lignes qui ne sont pas regroupées...

    Y a-t-il un nombre maximal de possibilité de regroupement ?

    Comment puis-je régler mon problème ?

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 370
    Points
    34 370
    Par défaut
    salut,
    tu as ajouté dans ton group by un champ en plus, qui n'apparait pas dans ton select, sur lequel tu effectues par la suite un Having <>

  3. #3
    Membre habitué
    Avatar de DamKre
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2007
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2007
    Messages : 495
    Points : 184
    Points
    184
    Par défaut
    En effet ...

    Cela dit, je corrige ainsi :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT Attributions.Classification, Attributions.Code, Attributions.CodesOrientations, Sum(Attributions.[Heures totales]) AS [SommeDeHeures totales], Sum(Attributions.[Heures prestées]) AS [SommeDeHeures prestées], Attributions.Situation, Attributions.FonctionCode, Attributions.Titre, Attributions.Id_Pers, Attributions.N°
    FROM Attributions
    GROUP BY Attributions.Classification, Attributions.Code, Attributions.CodesOrientations, Attributions.Situation, Attributions.FonctionCode, Attributions.Titre, Attributions.Id_Pers, Attributions.N°
    HAVING (((Attributions.N°)<>0))
    ORDER BY Attributions.Code;

    Et le problème reste le même :



    Ces mêmes enregistrements ne sont pas groupés...

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 370
    Points
    34 370
    Par défaut
    si tu souhaites supprimer les doublones, utilise la syntaxe DISTINCT

  5. #5
    Membre habitué
    Avatar de DamKre
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2007
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2007
    Messages : 495
    Points : 184
    Points
    184
    Par défaut yess !
    J'ai trouvé ( enfin, je pense ) en chipotant.

    Le problème venait de la colonne "N°".
    En effet, pour chaque personne, le numéro est différent, d'où le fait que cela ne se regroupe pas...

    En fait, si j'avais besoin de ce numéro, c'est parce que quand il vaut "0", il ne fallait pas en tenir compte ( d'où "<>0" ).

    Pour régler le problème, j'ai choisi une autre solution : un autre champ de type "Oui/non" pour prendre la ligne en compte ou non...

  6. #6
    Membre habitué
    Avatar de DamKre
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2007
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2007
    Messages : 495
    Points : 184
    Points
    184
    Par défaut
    Le temps que je poste...

    Citation Envoyé par jpcheck Voir le message
    si tu souhaites supprimer les doublones, utilise la syntaxe DISTINCT
    Aha ??

    Et comment l'utiliser ? Où la mettre dans ma clause SQL ?

  7. #7
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 370
    Points
    34 370
    Par défaut
    un exemple :
    je souhaite afficher les noms de famille existant dans ma base client :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT NM_Client FROM T_Client ORDER BY NM_Client DESC;

    j'aurais plusieurs lignes avec DURAND ou DUPONT, ce que je veux éviter :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCT NM_Client FROM T_Client ORDER BY NM_Client DESC;

    tu en déduiras la syntaxe pour ta requête

  8. #8
    Membre habitué
    Avatar de DamKre
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2007
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2007
    Messages : 495
    Points : 184
    Points
    184
    Par défaut


    J'ai mis :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT DISTINCT Attributions.Classification, Attributions.Code, Attributions.CodesOrientations, Sum(Attributions.Heures totales) AS SommeDeHeures totales, Sum(Attributions.Heures prestées) AS SommeDeHeures prestées, Attributions.Situation, Attributions.FonctionCode, Attributions.Titre, Attributions.Id_Pers, Attributions.N°
    FROM Attributions
    GROUP BY Attributions.Classification, Attributions.Code, Attributions.CodesOrientations, Attributions.Situation, Attributions.FonctionCode, Attributions.Titre, Attributions.Id_Pers, Attributions.N°
    HAVING (((Attributions.N°)<>0))
    ORDER BY Attributions.Code;

    Et j'arrive au même résultat...

  9. #9
    Membre expert
    Avatar de alassanediakite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Mali

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 1 599
    Points : 3 591
    Points
    3 591
    Billets dans le blog
    8
    Par défaut
    Salut
    Fais apparaitre les champs de regroupement dans ta requête. Je pense qu'un des champs de regroupement a des données différentes du genre "D ", "D", " D"... Sinon ce n'est pas possible qu'il y ait des lignes identiques.

  10. #10
    Membre habitué
    Avatar de DamKre
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2007
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2007
    Messages : 495
    Points : 184
    Points
    184
    Par défaut
    J'en reste toujours au même point...
    C'est le champ "Attributions.N°" qui contient de toutes façons des différences.
    C'est donc lui qui pose problème...

    Enfin voilà, vos réflexions m'ont permis de m'en rendre compte... donc

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

Discussions similaires

  1. [AC-2010] Opérations de regroupement dans une requête Access
    Par moctarim dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 28/08/2013, 08h34
  2. Réponses: 1
    Dernier message: 26/07/2009, 01h21
  3. Comment regrouper avec une condition dans une requête
    Par moilou2 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 22/07/2008, 10h39
  4. Regroupement dans une requète
    Par auriolbeach dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 03/01/2007, 09h44
  5. [débutant] Regrouper parametres dans une requête
    Par flo64 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 19/07/2006, 10h14

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