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 :

Problème de Groupage des données


Sujet :

SQL Firebird

  1. #1
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    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 679
    Points : 954
    Points
    954
    Par défaut Problème de Groupage des données
    Bonjour a tous

    je suit face a un problème et un peu fatigué de chercher

    J'ai une structure de table suivante :

    MaTable (id_info, ncc1, ncc2, ntot, typeDonnee)

    et cette série de données suivantes :

    444, 12, 10, 30, TT1
    443, 11, 14, 20, TT2
    500, 12, 10, 30, TT1
    200, 10, 6, 30, TT2
    350, 9, 10, 30, TT1
    Je voudrais avoir:
    La Moyenne des ncc1, ncc2, ntot Par TypeDonnee (TT1 et TT2)
    443, 11, 14, 20, TT2
    200, 10, 6, 30, TT2

    444, 12, 10, 30, TT1
    500, 12, 10, 30, TT1
    350, 9, 10, 30, TT1

    et ensuite avoir ensuite la Moyenne de TT1 et TT2.

    Je tente faire le tout dans une requête de groupage mais je n'y arrive pas !

    Merci de m'aider

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 036
    Points : 40 941
    Points
    40 941
    Billets dans le blog
    62
    Par défaut
    Bonsoir,

    pourquoi ne pas passer par des unions , pour respecter ta présentation et si j'ai compris l'énoncé cela ressemblerai à ça je pense

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT ID_INFO,NCC1,NCC2,NTOT,TYPEDONNE FROM MATABLE 
    UNION
    SELECT MAX(ID_INFO)+1 -- ou tout simplement MAX(9999999)
              ,AVG(NCC1),AVG(NCC2),AVG(NTOT),TYPEDONNE FROM MATABLE GROUP BY TYPEDONNE  
    ORDER BY ID_INFO,TYPEDONNE
    Je tente faire le tout dans une requête de groupage mais je n'y arrive pas !
    il aurait été bien de mettre au moins la tentative !
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    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 679
    Points : 954
    Points
    954
    Par défaut
    Finalement je suis passé par une procédure stockée pour m’en sortir

    1- calcul des moyennes par TT
    2-Calcul général de la moyenne des TT

    Merci a tous

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 036
    Points : 40 941
    Points
    40 941
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    pour une question de ce type le mieux aurait été de nous fournir en script SQL, la création de la table et de son jeu d'essai
    il est pénible d'avoir à le faire soi-même pour pouvoir tester la solution à proposer

    ce matin , j'ai pris le temps de faire une table et d'y mettre les données (voici le script que l'on aurait aimé avoir)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    CREATE TABLE TESTM
    (
      ID Integer,
      TT Char(3),
      NCC Integer,
      NCT Integer,
      TOT Integer
    );
    INSERT INTO TESTM (ID, TT, NCC, NCT, TOT) VALUES ('200', 'TT2', '10', '6', '30');
    INSERT INTO TESTM (ID, TT, NCC, NCT, TOT) VALUES ('350', 'TT1', '9', '10', '30');
    INSERT INTO TESTM (ID, TT, NCC, NCT, TOT) VALUES ('443', 'TT2', '11', '14', '20');
    INSERT INTO TESTM (ID, TT, NCC, NCT, TOT) VALUES ('444', 'TT1', '12', '10', '30');
    INSERT INTO TESTM (ID, TT, NCC, NCT, TOT) VALUES ('500', 'TT1', '12', '10', '30');

    après test j'en arrive à ce SQL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT 0,TT,ID,CAST(NCC AS NUMERIC(15,2)),CAST(NCT AS NUMERIC(15,2)),CAST(TOT AS NUMERIC(15,2)) FROM TESTM 
    UNION
    SELECT MAX(1),TT,MAX(9999999)
              ,AVG(NCC),AVG(NCT),AVG(TOT) FROM TESTM GROUP BY TT
    Citation Envoyé par résultats
    0 TT1 350 9.00 10.00 30.00
    0 TT1 444 12.00 10.00 30.00
    0 TT1 500 12.00 10.00 30.00
    0 TT2 200 10.00 6.00 30.00
    0 TT2 443 11.00 14.00 20.00
    1 TT1 9999999 11.00 10.00 30.00
    1 TT2 9999999 10.00 10.00 25.00
    un peu de cosmétique et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT 'DETAIL',TT,ID,CAST(NCC AS NUMERIC(15,2)),CAST(NCT AS NUMERIC(15,2)),CAST(TOT AS NUMERIC(15,2)) FROM TESTM 
    UNION
    SELECT 'MOYENNES',TT,NULL
              ,AVG(NCC),AVG(NCT),AVG(TOT) FROM TESTM GROUP BY TT
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    DETAIL  	TT1	350	9.00	10.00	30.00
    DETAIL  	TT1	444	12.00	10.00	30.00
    DETAIL  	TT1	500	12.00	10.00	30.00
    DETAIL  	TT2	200	10.00	6.00	30.00
    DETAIL  	TT2	443	11.00	14.00	20.00
    MOYENNES	TT1	[null]	11.00	10.00	30.00
    MOYENNES	TT2	[null]	10.00	10.00	25.00
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  5. #5
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    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 679
    Points : 954
    Points
    954
    Par défaut
    Merci beaucoup pour ces toutes ces informations. la c'est très claire.

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

Discussions similaires

  1. [VB6]problème d'insertion des donneés dans une base d'Access2003
    Par lanbok dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 27/05/2006, 12h17
  2. problème de consolidation des données
    Par iam dans le forum Bases de données
    Réponses: 1
    Dernier message: 21/05/2006, 13h31
  3. [Dates] Problème de réaffichage des données
    Par HwRZxLc4 dans le forum Langage
    Réponses: 7
    Dernier message: 10/05/2006, 21h04
  4. Problème à l'importation des données
    Par steinfield dans le forum Access
    Réponses: 2
    Dernier message: 24/04/2006, 16h02
  5. [JTable] Problème d'affichage des données
    Par ddams dans le forum Composants
    Réponses: 2
    Dernier message: 15/09/2004, 17h07

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