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

Langage SQL Discussion :

count+sum sur une ligne


Sujet :

Langage SQL

  1. #1
    Candidat au Club
    count+sum sur une ligne
    Bonjour à tous,
    Bon je viens demander de l'aide car je suis en train de me prendre la tête sur une requête COUNT + SUM. La voici:


    Code php :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
        // calcul du volume de lead pour le pid séléctionné + calcul des 70%
        $req2 = $bdd->prepare('SELECT COUNT(*), SUM(id) FROM user WHERE pid_id=:pid_id AND reg_date2>=:date_start AND reg_date2<=:date_end');
        $req2-> execute(array('pid_id' => $_POST['pid_id'],
                              'date_start' => $_POST['datepicker'],
                              'date_end' => $_POST['datepicker2'])) or die(print_r($req2(errorInfo())));
        while ($donnees = $req2->fetch())
        {echo $donnees['nb_lead_recu_mois'];}
        $req2->closeCursor();
    ?>


    J'ai d'autres requête avant sur lesquelles je fait des COUNT et tout fonctionne. Sur chaque ligne de mon tableau mes requêtes me compte bien combien de personnes se sont enregistrés chaque jour.

    Ce que je veux faire c'est une ligne en bas qui me fait la somme de toutes les lignes au dessus mais je n'y arrive pas.

    Une idée ?

    Merci d'avance,

  2. #2
    Rédacteur

    Un SGBD n'est pas un tableur. Néanmoins vous pouvez calculer la somme globale par une fonction de fenêtrage et rajouter cosmétiquement une ligne à votre tableau côté applicatif.

    Votre requête devrait être :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    SELECT COUNT(*), SUM(id), SUM(COUNT(*)) OVER() AS SUM_COUNT, SUM(SUM(id)) OVER() AS SUM_SUM FROM user WHERE pid_id=:pid_id AND reg_date2>=:date_start AND reg_date2<=:date_end


    A +
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  3. #3
    Membre éclairé
    Bonjour,

    Pourriez-vous donner un exemple de jeu de données avec le résultat attendu? Car :

    Ce que je veux faire c'est une ligne en bas qui me fait la somme de toutes les lignes au dessus mais je n'y arrive pas.
    De quelles lignes s'agit-il? La requête que vous donnez avec COUNT(*) et le SUM(id) ne va donner qu'une seule ligne.

    Par ailleurs, êtes vous sûr de SUM(id) ? Sommer des ids me semble bizarre...

  4. #4
    Membre à l'essai
    Bonjour
    en fournissant un jeu de donnée ainsi que les resultats attendus on pourra mieux t'aider

    pourquoi veux tu effectuer la somme sur les ids?

    parce que cette colonne est utilisée pour generér les valeurs de clé

    voir ci-dessus

    https://docs.microsoft.com/fr-fr/sql...l-server-ver15

    merci

  5. #5
    Modérateur

    Ce n'est pas parce qu'une colonne a été nommée id qu'elle contient obligatoirement un identifiant...
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  6. #6
    Membre à l'essai
    al1_24 c'est vrai
    et c'est la raison pour laquelle je lui demande un jeu de donnée avec les resultats attendus pour avoir une idée claire de son besoin afin lui proposé adapté
    merci

###raw>template_hook.ano_emploi###