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 :

Utilisation de la fonction MONTH pour faire une somme de données


Sujet :

Développement SQL Server

  1. #1
    Membre régulier
    Homme Profil pro
    ETUDE
    Inscrit en
    Septembre 2016
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : ETUDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 360
    Points : 117
    Points
    117
    Par défaut Utilisation de la fonction MONTH pour faire une somme de données
    Salut à tous j'ai créé un table pour la gestion d'une station
    Nom : SUPPER.PNG
Affichages : 411
Taille : 26,7 Ko
    et je voudrais savoir si c'est possible de faire la somme des montant par mois sans utiliser la requette entre deux dates c'est à dire que pour le mois de juin par exemple j'aimerais savoir s'il existe une syntaxe en sql qui permet de déterminer la somme en utilisant directement la fonction MONTH et si c'est le cas comment procede-t'on. Merci de m'aider

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 133
    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 133
    Points : 38 556
    Points
    38 556
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    Si le tableau que vous présentez est vraiment l'image de la table, alors il y a des redondances, des colonnes calculées et des colonnes qui n'ont rien à y faire :
    SORTIE = CLOSE - OPEN, du coup cette colonne ne sert à rien d'autre qu'à encombrer votre bdd
    MONTANT = PU * SORTIE, meme combat
    POMPISTE, POMPE et PRODUIT ne devraient pas être des libellés mais des FK pointant respectivement sur la table du personnel, des pompes et des types de carburants
    Du coup ca n'est pas une base de données, mais des données à plat, comme dans un tableur

    De plus, vous utilisez des mots réservés (CLOSE, OPEN) comme nom de colonne, ça n'est pas recommandé.

    Sinon, pour en revenir à la question, vous pouvez effectivement utiliser month(sortie), par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    select Date_sortie
         , pompe
         , produit
         , sum(sortie)
         , sum(montant)
    from ma_table
    where month(date_sortie)=6
    group by Date_sortie
           , pompe
           , produit
    Celà étant, si votre table possède un index sur la date de sortie, l'utilisation de Month() compromet l'usage de l'index, alors que between l'autorise, attention donc...

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    Une solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT YEAR(Date_sortie) AS AN,
           MONTH(Date_sortie) AS MOIS,  
    	   COUNT(*) AS NOMBRE_SORTIE,
           SUM(sortie) AS TOTAL_SORTIE,
    	   SUM(montant) AS TOTAL_MONTANT
    FROM   ma_table
    GROUP  BY YEAR(Date_sortie), MONTH(Date_sortie)
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Membre régulier
    Homme Profil pro
    ETUDE
    Inscrit en
    Septembre 2016
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : ETUDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 360
    Points : 117
    Points
    117
    Par défaut
    Bonsoir escartefigue et merci pour votre solution et pour vos remarques ici il s'agit d'une vue pas de la table de saisis des données elle même

  5. #5
    Membre régulier
    Homme Profil pro
    ETUDE
    Inscrit en
    Septembre 2016
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : ETUDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 360
    Points : 117
    Points
    117
    Par défaut
    Merci SQLpro c'est vraiment la solution idéal merci

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

Discussions similaires

  1. Utilisation de taleaux pour faire une base de données
    Par zaloeil dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 11/06/2014, 14h44
  2. fonction sext pour faire une division
    Par binome-x dans le forum VHDL
    Réponses: 1
    Dernier message: 24/01/2013, 10h27
  3. Utiliser un tableau de résultat pour faire une jointure
    Par Xavier1979 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 13/06/2007, 13h27
  4. Probleme pour faire une somme sous Excel
    Par Nicolas92 dans le forum Excel
    Réponses: 5
    Dernier message: 02/12/2005, 11h38
  5. Probleme pour faire une somme dans header ??
    Par snoop57 dans le forum Access
    Réponses: 7
    Dernier message: 01/12/2005, 13h40

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