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 :

Fonction agrégat SUM dans calcul SQL


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 41
    Points : 39
    Points
    39
    Par défaut Fonction agrégat SUM dans calcul SQL
    Bonjour,
    inexpérimenté en SQL, je voulez savoir s'il était possible d'utiliser une fonction d'agrégat dans un calcul SQL.

    Exemple:

    J'ai un champ C.A, chaque enregistrement correspond à un client.
    Dans une vue je voudrais savoir quel pourcentage de mon chiffre d'affaire ce client génère. Cela me donne une requête comme ci dessous (qui ne marche pas bien sûr):


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT CA
     
    CA/sum(CA)*100 as PourcentageCA
     
    FROM clients
    Je pense que c'est très basique comme problème, mais je bute. On me parle d'une requête ne comprenant pas l'expression spécifiée "CA" comme une partie de la fonction d'agrégat.

    Merki.

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Vous pouvez mais pas de cette façon-là.
    Quel est votre SGBD ?

  3. #3
    Membre confirmé Avatar de juvamine
    Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2004
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2004
    Messages : 414
    Points : 502
    Points
    502
    Par défaut
    D'après moi il faut passer par une sous requete (ou une cte aussi)
    Par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT CA,  
    (CA/(select sum(CA) From Clients))*100 AS PourcentageCA 
    FROM clients
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With maCte(SommeCA) as (select sum(CA) From Clients)
    Select CA, (CA / maCte.SommeCA) *100
    From Clients, maCTE
    tu auras (dans les deux cas) à gérer la division par 0
    Juvamine

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 41
    Points : 39
    Points
    39
    Par défaut
    Super ça marche nickel.
    Je te remercie juvamine, je viens de découvrir l'existence des sous-requêtes.
    Bah oui, je débute.

    Merci

    Oui désolé, j'ai oublié de préciser que j'étais sous ACCESS.

  5. #5
    Membre confirmé Avatar de juvamine
    Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2004
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2004
    Messages : 414
    Points : 502
    Points
    502
    Par défaut
    En effet sous access tu n'auras que les sous requetes pour te sauver

    Il faudra utiliser IIF pour gérer la division par zéro...
    Juvamine

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

Discussions similaires

  1. [MySQL] Calcul d'une somme dans une boucle VERSUS Calcul via la fonction MySQL SUM
    Par 2o1oo dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 13/10/2010, 09h32
  2. Pb sur SUM dans requête SQL exécutée sous VB
    Par MAKSIM dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 14/11/2006, 17h07
  3. [VB6]Fonction dans requête SQL Access
    Par jean-pierre96 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 21/04/2006, 19h44
  4. fonction équivalente à la fonction MOD (oracle) dans ms-sql
    Par rodrigue50 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 14/07/2005, 16h14
  5. [VBA-E] Fonction sum() dans une cellule
    Par Gonzo dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/12/2002, 10h18

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