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 MySQL Discussion :

calculate sum of columns


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Juin 2011
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 74
    Par défaut calculate sum of columns
    Bonjour à tous,
    J'ai un table comme ça:
    A1 A2 A3 ... An A
    11 21 75 ... 12 0
    51 57 47 ... 14 0
    Pour la colonne A, je voudrais changer les valeurs à la somme de (A1+A2+...+An)
    J'ai trouvé une façon pour sommer les valeurs dans les colonnes, comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    select A1+A2+A3+...+An as sumA
    from myTable;
    Mais je sais pas comment à faire pour A1+A2+A3+...+An. J'ai enregistré les noms des colonnes dans un array, et je veux utiliser for() pour imprimer chaque nom. Comment à faire ça?

    Ou il y a d'autre façon pour calculer la somme des colonnes?

    Merci beaucoup!

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Je ne comprends pas ta demande !
    Pour la colonne A, je voudrais changer les valeurs à la somme de (A1+A2+...+An)
    Si tu veux changer une valeur dans une colonne, tu dois utiliser une requête UPDATE.

    J'ai trouvé une façon pour sommer les valeurs dans les colonnes
    Effectivement, pour faire la somme des colonnes A1 à An pour une ligne, il suffit de les additionner dans le SELECT. Ta requête est donc bonne.

    Mais je sais pas comment à faire pour A1+A2+A3+...+An.
    Ben, tu viens de le faire !

    J'ai enregistré les noms des colonnes dans un array, et je veux utiliser for() pour imprimer chaque nom.
    "array", "for()", imprimer... ce n'est plus du MySQL là !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Juin 2011
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 74
    Par défaut
    Merci et je vais vous expliquer.
    Je utilise PHP et MySQL
    Au début, dans la base, il y a les colonnes A1,A2,...An.
    Et maintenant, je voudrais ajouter une colonne 'A', la valeur de 'A' est la somme des colonnes A1+A2+...+An
    dans MySQL, j'ai ajouté une colonne 'A', la valeur défaute est 0, c'est puorquoi je veux changer la valeur de la colonne 'A'
    Et pour changer la valeur de la colonne 'A', d'abord, je dois calculer la somme des colonnes A1,A2,... . C'est pourquoi je veux utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select A1+A2+...+An as sumAs From myTable;
    pour A1+A2+...+An, maintenant, je sais pas tous les nom des colonnes, donc je dois récupérer les noms dans la base. Et puis je les enregistrer dans un array 'arrAs[]'.
    Mais je sais pas comment à utiliser ce array dans select? Bien sûr,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select arrAs[] from myTable;
    n'est pas correct.

    Vous avez une idée? Merci

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Comment se fait-il que tu ne connaisses pas toutes les colonnes de la table que tu interroges ?

    Par ailleurs, tu n'as pas besoin de d'abord calculer la somme, tu peux faire cette somme directement dans la requête UPDATE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE la_table
    SET A = A1 + A2 + A3 -- ... jusqu'à An
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Juin 2011
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 74
    Par défaut
    C'est parce que je voudrais récupérer les noms dans la base chaque fois que j'exécute cette requetre.
    Si il y a les modifications dans la base, je n'a pas besoin de changer mon code.

  6. #6
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Si tu veux récupérer les noms et les caractéristiques des colonnes d'une table, tu peux interroger la vue information_schema.COLUMNS.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

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

Discussions similaires

  1. Calcul sum période précédente
    Par arnest dans le forum QlikView
    Réponses: 1
    Dernier message: 25/10/2013, 08h46
  2. Membre calculé + sum de pourcentage
    Par PHPkoala dans le forum SSAS
    Réponses: 1
    Dernier message: 22/10/2009, 13h48
  3. [Mysql 5.0]Addtime,SUM et calcul heures
    Par MaitrePylos dans le forum Langage SQL
    Réponses: 0
    Dernier message: 11/08/2008, 09h37
  4. erreur de calcul avec SUM
    Par peyro51 dans le forum Excel
    Réponses: 6
    Dernier message: 14/07/2007, 09h14
  5. [newbie]comment calculer la somme des nb pages sum()?
    Par megapacman dans le forum Débuter
    Réponses: 3
    Dernier message: 13/06/2006, 11h03

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