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 :

Combinaison Sum sql


Sujet :

Requêtes MySQL

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Combinaison Sum sql
    Je voulais savoir comment par Commande SQL avoir le résultat de somme de combinaison de 3 nombre issu d'une table avec une seule colonne ex 3,5,8 ---< 8,11,13
    Merci d'avance.

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 133
    Points : 38 556
    Points
    38 556
    Billets dans le blog
    9
    Par défaut
    Avec un produit cartésien

    Exemple :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    with t1(c1, c2) as
        (select 1, 3   union all
         select 2, 5   union all
         select 3, 8
        )
    select t1.c2           as val1
         , t2.c2           as val2  
         , t1.c2+t2.c2     as tot 
    from t1 as t1
    cross join t1 as t2
       on t2.c1 > t1.c1

    Résultat :

    val1 val2 tot
    3 5 8
    5 8 13
    3 8 11


    Par contre, vous êtes vraiment en MySQL V4.0 , il est grand temps de passer à la V8, la V4 est obsolète et les apports de la V8 par rapport aux versions antérieures sont considérables (CTE, requêtes récursives, fonctions OLAP...)

  3. #3
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 379
    Points : 19 060
    Points
    19 060
    Par défaut
    Salut HAFSISCLUB.

    Citation Envoyé par HAFSISCLUB
    Je voulais savoir comment par Commande SQL avoir le résultat de somme de combinaison de 3 nombre issu d'une table avec une seule colonne ex 3,5,8 ---< 8,11,13
    Ce ne sont pas des commandes mais des requêtes.
    Si je comprends bien, vous désirez la somme des couples issues de cette liste (3,5,8) :
    --> 3 + 5 = 8
    --> 3 + 8 = 11
    --> 5 + 8 = 13

    Code mysql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    --------------
    START TRANSACTION
    --------------
     
    --------------
    set session collation_connection = "latin1_general_ci"
    --------------
     
    --------------
    DROP DATABASE IF EXISTS `base`
    --------------
     
    --------------
    CREATE DATABASE IF NOT EXISTS `base`
            DEFAULT CHARACTER SET `latin1`
            DEFAULT COLLATE       `latin1_general_ci`
    --------------
     
    --------------
    DROP TABLE IF EXISTS `test`
    --------------
     
    --------------
    CREATE TABLE `test`
    (  `id`   integer unsigned NOT NULL auto_increment primary key,
       `val`  integer unsigned NOT NULL
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
      ROW_FORMAT=COMPRESSED
    --------------
     
    --------------
    insert into `test` (`val`) values (3),(5),(8)
    --------------
     
    --------------
    select * from `test`
    --------------
     
    +----+-----+
    | id | val |
    +----+-----+
    |  1 |   3 |
    |  2 |   5 |
    |  3 |   8 |
    +----+-----+
    --------------
    select     t1.val + t2.val as res
          from `test` as t1
    cross join `test` as t2
         where t1.id < t2.id
    --------------
     
    +-----+
    | res |
    +-----+
    |   8 |
    |  11 |
    |  13 |
    +-----+
    --------------
    COMMIT
    --------------
     
    Appuyez sur une touche pour continuer...

    Cordialement.
    Artemus24.
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

Discussions similaires

  1. Pb avec combinaison SUM et CASE
    Par fashionfactory dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 24/11/2008, 17h55
  2. A propose de l'agregat SUM SQL
    Par pierre24 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 06/08/2008, 12h30
  3. SQL, problème de Montant (SUM) multiplié
    Par ronando dans le forum Langage SQL
    Réponses: 9
    Dernier message: 20/10/2005, 15h48
  4. sql sum()
    Par philippe123 dans le forum ASP
    Réponses: 2
    Dernier message: 20/07/2005, 10h49
  5. [sql] [oracle] éliminer les doublons dans sum ?
    Par trungsi dans le forum Langage SQL
    Réponses: 14
    Dernier message: 04/03/2005, 12h29

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