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

Développement SQL Server Discussion :

group by sql


Sujet :

Développement SQL Server

  1. #1
    Membre actif
    Inscrit en
    Mai 2008
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 89
    Par défaut group by sql
    salut à tous
    j'utilise sql 2008 R2 serever et delphi 7

    supposons que c'est ma table dite TRAVAILLEURS identifie par : mat_TR
    et une autre table dite Paiement_TR identifie par : mat_TR

    TRAVAILLEURS:
    mat_TR: 1 , nom: A
    mat_TR:2 , nom: B
    mat_TR:3 , nom: C

    PAIEMENT_TR;
    mat_TR : 1, Mt_brut: 50000,retenu :13000
    mat_TR : 1, Mt_brut: 8000,retenu :2000
    mat_TR : 2, Mt_brut: 10000,retenu :4000
    mat_TR : 3, Mt_brut: 3000,retenu :1000

    RESULTAT
    A: 58000, 15000
    B: 10000, 4000
    C: 3000, 1000

    j'aimerais savoir comment faire une jointure entre les deux table pour afficher le nom de chaque travailleur et calculer la somme pour chaque champ('mt_brut,retenu') avec group by et entre deux date

    merci

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 640
    Billets dans le blog
    10
    Par défaut
    Concernant l'extraction, faites comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select mat_tr
         , sum(MT_brut)
         , sum(retenu)
    from Travailleurs
    where ma_date between '2016-01-01' and '2016-12-31'
    group by mat_TR
    Pour ce qui concerne la restitution dans un état, c'est du ressort de la couche applicative

    EDIT : j'avais inversé l'ordre WHERE / GROUP BY, c'est corrigé

  3. #3
    Membre actif
    Inscrit en
    Mai 2008
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 89
    Par défaut
    j'ai pu faire le calcul de sommes sauf qu'il me reste que la jointure pour afficher les noms des travailleurs ainsi le nombre d'enregistrement (paiement) calculer de chaque travailleur

    exemple nbr enregistrement travailleur A=2 enregistrements calculés
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
        Query7.active:=false;                              
        Query7.Sql.Clear;
        Query7.Sql.Add
     
         (' select mat_tr, sum(MTbrut), sum(retenue) from PAIEMENT_TR  WHERE PAIEMENT_TR.date_p BETWEEN :DD AND :DF  group by mat_tr' );
     
         Query7.Active:=false;
    Query7.ParamByName('DD').asDateTime:=datetimepicker3.Date;
    Query7.ParamByName('DF').asDateTime:=datetimepicker4.Date;
    Query7.Active:=true;
    merci

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

Discussions similaires

  1. L'avenir du BDE et des SQL Links révélé ! <officiel>
    Par Merlin dans le forum Bases de données
    Réponses: 12
    Dernier message: 02/06/2006, 10h18
  2. Pb migration Access / SQL server
    Par yoyo dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 25/04/2005, 10h39
  3. Backup BD SQL Server
    Par Ethmane dans le forum Administration
    Réponses: 3
    Dernier message: 07/06/2002, 00h42
  4. Cours, tutoriels, logiciels, F.A.Q,... pour le langage SQL
    Par Marc Lussac dans le forum Langage SQL
    Réponses: 0
    Dernier message: 04/04/2002, 10h21

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