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 :

Somme cumulée de pourcentage [2012]


Sujet :

Développement SQL Server

  1. #1
    Membre régulier
    Homme Profil pro
    France
    Inscrit en
    Juillet 2016
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : France
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2016
    Messages : 71
    Points : 91
    Points
    91
    Par défaut Somme cumulée de pourcentage
    Bonjour,

    Je réalise une requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    select distinct	f.NUM_ENR
    				,f.DESIGN
    				,(sum(s.VALEUR_STOCK) over (partition by f.design)) 
    				/(sum(s.VALEUR_STOCK) over () )cumul
     
     
    from			T_FAMILLE_PIECE f 
    	inner join	t_piece p			on p.CLE_FAMILLE = f.NUM_ENR
    	inner join	T_STOCK s			on s.CLE_PIECE = p.CLE_PIECE
     
    where s.CLE_MAGASIN <>100000
     
    order by cumul desc
    Cette requete me renvoie le tableau suivant :
    NUM_ENR********DESIGN***********cumul
    517*************pièce 4***********0.304047
    549*************Pièce 1***********0.179639
    522*************pièce 7***********0.139689
    504*************pièce 10**********0.06911

    Je souhaite réaliser la somme cumulée de la dernière colonne mais je sèche un peu par mon manque de pratique et compréhension de la clause "over"... :/ Quelqu'un aurait il une idée ?

    Par avance merci.

  2. #2
    Membre régulier
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Mars 2016
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Mars 2016
    Messages : 58
    Points : 105
    Points
    105
    Par défaut
    Bonjour

    Un exemple de reponse :
    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
     
     
    WITH R as (
    select distinct	f.NUM_ENR
    				,f.DESIGN
    				,(sum(s.VALEUR_STOCK) over (partition by f.design)) 
    				/(sum(s.VALEUR_STOCK) over () )CUMUL
     
     
    from			T_FAMILLE_PIECE f 
    	inner join	t_piece p			on p.CLE_FAMILLE = f.NUM_ENR
    	inner join	T_STOCK s			on s.CLE_PIECE = p.CLE_PIECE
     
    where s.CLE_MAGASIN <>100000)
    SELECT NUM_ENR, DESIGN, CUMUL, SUM(CUMUL) OVER () as TOTCUMUL FROM R
    Par contre attention aux majuscules / minuscules c'est pas tres lisible !

  3. #3
    Membre régulier
    Homme Profil pro
    France
    Inscrit en
    Juillet 2016
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : France
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2016
    Messages : 71
    Points : 91
    Points
    91
    Par défaut
    Bonjour,

    Vous étiez à deux doigts de ma solution. Le problème de votre solution était que ma somme ne se cumulait pas. Du coup j'ai rajouté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    WITH R as (
    SELECT DISTINCT	f.NUM_ENR
    				,f.DESIGN
    				,(sum(s.VALEUR_STOCK) OVER (PARTITION BY f.design)) 
    				/(sum(s.VALEUR_STOCK) OVER () )CUMUL
     
     
    from			T_FAMILLE_PIECE f 
    	inner join	t_piece p			on p.CLE_FAMILLE = f.NUM_ENR
    	inner join	T_STOCK s			on s.CLE_PIECE = p.CLE_PIECE
     
    where s.CLE_MAGASIN <>100000)
    SELECT NUM_ENR, DESIGN, CUMUL, SUM(CUMUL) OVER (ORDER BY CUMUL DESC) as TOTCUMUL FROM R
    Du coup en ajoutant "ORDER BY CUMUL DESC" j'ai pu faire le cumul progressif de la colonne CUMUL.

    En tout cas merci beaucoup pour votre aide ! Vous m'avez débloqué.

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

Discussions similaires

  1. Somme cumulative en pourcentage
    Par jple_78 dans le forum Débuter
    Réponses: 1
    Dernier message: 29/12/2008, 18h46
  2. somme cumulative su BO reporter
    Par cricri2607 dans le forum Débuter
    Réponses: 4
    Dernier message: 26/11/2008, 11h40
  3. somme cumulative sql
    Par marcdonaldwilfried dans le forum Langage SQL
    Réponses: 1
    Dernier message: 05/04/2007, 12h25
  4. ! Somme Cumulative en SQL !
    Par dom283 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 16/03/2007, 18h25
  5. somme cumulative
    Par gsquad dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/04/2006, 17h18

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