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

PHP & Base de données Discussion :

SUM sur requete sur plusieurs champs


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 22
    Par défaut SUM sur requete sur plusieurs champs
    Bonjour,
    J'ai un petit probleme,
    je fait une requete sql sur plusieurs champs de la table,
    je veux le SUM de l'un des champs;
    et bien sur, je le recupere apres le while suivant ma requete,
    evidement, je n'ai pas le SUM.

    comment dois je faire, pour avoir le SUM de l'un de mes champ, tout en récuperant les autres

    voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $req = mysql_query("SELECT ALL id,nom ,SUM(lenb) AS lesum,lenb FROM latable_tbl GROUP BY id")or die('Erreur de selection '.mysql_error());
    while ($letest = mysql_fetch_array($req))
     
    {
    $ladd = $letest['lesum'];
    $learray[] = $letest['nom'].'G'.$letest['lenb'];
    $lesnb[] = $letest['lenb'];
    }
    $ladd ne me donne pas la somme de ce champ, mais sa valeur a chaque boucle
    bien sur, je peux toujours faire un array_sum sur $lesnb;
    mais ce n'est pas comme ca que je le veux,
    je veux extraire le sum directement par sql, sans passer par une fonction php

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Août 2007
    Messages : 109
    Par défaut
    Normal.

    Tu fais ton group sur l'identifiant de ta table, qui est unique.

    Tu devrais :

    1 - enlever Id de ta clause select
    2 - Faire ton group by sur la colonne de regroupement Nom, ou autre chose.

    Pour l'instant la requete que tu fais s'exprime comme suit :

    Je veux la somme des quantite(Nb) pour chaque Identifiant.

    NB: il faut toujours limité le nombre de champ dans la sélection, car pour chaque champ dans la sélection tu entend le regroupement.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 22
    Par défaut
    Citation Envoyé par romulus1206 Voir le message
    Normal.

    Tu fais ton group sur l'identifiant de ta table, qui est unique.

    Tu devrais :

    1 - enlever Id de ta clause select
    2 - Faire ton group by sur la colonne de regroupement Nom, ou autre chose.

    Pour l'instant la requete que tu fais s'exprime comme suit :

    Je veux la somme des quantite(Nb) pour chaque Identifiant.

    NB: il faut toujours limité le nombre de champ dans la sélection, car pour chaque champ dans la sélection tu entend le regroupement.
    Merci a toi,
    je viens de suivre tes instructions,
    et ce n'est pas ce que je veux,
    j'avais group by id pour avoir tous ce que je voulais;
    en groupant par lenb ou par nom, je n'obtient pas tout.
    par contre, j'obtient la vrais somme de ce que ramasse ma requete, mais sous cette forme, elle ne me remene pas tout ce que je veux,
    c'est pour ca que je ramasse l'id aussi !
    est il possible de recuperer mon sum avant d'entrer dans la boucle while ?

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Août 2007
    Messages : 109
    Par défaut
    Exprime la requête que tu veux faire.

    ex : Je veux sélectionner l'ensemble des quantités des gens portant le nom 'Jacques'

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 22
    Par défaut
    Citation Envoyé par romulus1206 Voir le message
    Exprime la requête que tu veux faire.

    ex : Je veux sélectionner l'ensemble des quantités des gens portant le nom 'Jacques'
    et bien je veux ca :
    je veux selectionner les champs nom, lenb, SUM(lenb) FROM matable

    et en récup,
    je veux
    $lenom[] = $var('nom')
    $lesnb[] $var('lenb')

    et la ou est mon probleme
    la somme de (lenb)

    mon probleme, c'est que je requete sur plusieurs champ, récup le SUM quand je requete qu'un champ, j'ai aucun pb

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Août 2007
    Messages : 109
    Par défaut
    c'est toujours pas trés clair

    Donc si j'ai compris , tu veux récupèrer la somme de tous les lenb de ta table ajouter à cette somme la sélection des nom et id

    Donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT id,nom, (SELECT SUM(lenb) FROM matable) as som FROM matable

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 22
    Par défaut
    Citation Envoyé par romulus1206 Voir le message
    c'est toujours pas trés clair

    Donc si j'ai compris , tu veux récupèrer la somme de tous les lenb de ta table ajouter à cette somme la sélection des nom et id

    Donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT id,nom, (SELECT SUM(lenb) FROM matable) as som FROM matable
    oui et non ^^
    en fait, le SUM aura un traitement independant,
    je veux seulement le recuperer,
    puis, recuperer aussi le nom et le nb, mais ca ca ne me pose pas de probleme
    j'essais ta requete,
    je te dis ce qu il en est !

    merci a toi en tous cas

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 22
    Par défaut --->romulus1206
    --->romulus1206

    Génial,
    pile poil ce que je voulais !!
    merci beaucoup de ton aide et ta patience !

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Août 2007
    Messages : 109
    Par défaut
    de rien,

    Au plaisir

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 22
    Par défaut
    Citation Envoyé par romulus1206 Voir le message
    de rien,

    Au plaisir
    enfin, tous ca m apprend que je ne peux pas requeter le meme champ avec le meme selecte, pourtant, j avais essayer avec un alias pour le suml, de facon a le differencier de mon select sur le meme champ

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 22
    Par défaut suite, mais avec jointure !
    c'est remoi !
    maintenant, je lutte pour obtenir la meme chose, mais apres une jointure,
    c'est a dire obtenir le sum de mon champ, mais uniquement apres avoir été filtré par une jointure !
    est ce possible ?
    j'ai éssayer differentes choses, chercher different tuto,
    pas trouver ce qui m'aide

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 22
    Par défaut
    Bon,
    j ai fait ca, et ca marche;
    est ce la meilleur/seule methode, ou il y a plus optimiser ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req = mysql_query("SELECT nom, table1_tbl.lenb, (SELECT SUM(table1_tbl.lenb) FROM table1_tbl INNER JOIN table2_tbl ON table1_tbl.nom = table2_tbl.mbr) as som FROM table1_tbl INNER JOIN table2_tbl ON table1_tbl.nom = table2_tbl.mbr")or die('Erreur de selection '.mysql_error());

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 22
    Par défaut
    désolé de upé; mais y a t'il une meilleur facon que mon code plus haut ?

Discussions similaires

  1. Réponses: 8
    Dernier message: 20/10/2014, 04h28
  2. Pb Count dans une requete avec plusieurs champ retournés
    Par maxos75 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 13/06/2008, 14h01
  3. requete sur le type de champs possible ?
    Par Hydex dans le forum VBA Access
    Réponses: 1
    Dernier message: 31/05/2007, 16h52
  4. Export requete sur excel sur plusieur onglets
    Par Renardo dans le forum Access
    Réponses: 10
    Dernier message: 26/01/2007, 17h13
  5. [MySQL] Requete sur 2 tables avec champs commun
    Par marcd dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 20/04/2006, 16h14

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