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 :

Requete select spécifique (arithmétique) en SQL (similaire à la function SUM)ule


Sujet :

Requêtes MySQL

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2018
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Décembre 2018
    Messages : 50
    Points : 29
    Points
    29
    Par défaut Requete select spécifique (arithmétique) en SQL (similaire à la function SUM)ule
    Bonjour,
    j'ai une table sous la forme suivante:

    Date1 - Ref1 - Valeur1
    Date1 - Ref2 - Valeur2
    Date1 - Ref3 - Valeur3
    Date1 - Ref4 - Valeurx
    ...
    Date2 - Ref1 - Valeur4
    Date2 - Ref2 - Valeur5
    Date2 - Ref3 - Valeur6
    ...

    J'aimerais savoir si je peux réaliser automatiquement le calcul suivant:
    Pour chaque date calculer la valeur de Ref1 moins les valeurs de Ref2 et Ref3 (pas de Ref4 et suivants)

    J'obtiendrais donc sur les données précédentes:
    Date1 Valeur1bis (=Valeur1 - Valeur2 - Valeur3)
    Date2 Valeur2bis (=Valeur4 - Valeur5 - Valeur6)
    ...

    Avez vous une idée de comment réaliser cette requête?

    Merci

  2. #2
    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 377
    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 377
    Points : 19 049
    Points
    19 049
    Par défaut
    Salut Yellow-sky.

    Code : 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
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    --------------
    START TRANSACTION
    --------------
     
    --------------
    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,
      `date`  date             not null,
      `ref`   tinyint unsigned not null,
      `val`   decimal(8,2)     not null
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
      ROW_FORMAT=COMPRESSED
    --------------
     
    --------------
    insert into `test` (`date`,`ref`,`val`) values
      ('2020-01-05', 1, 150.00),
      ('2020-01-05', 2,  25.00),
      ('2020-01-05', 3,  12.00),
      ('2020-01-05', 4,  17.00),
      ('2020-01-05', 5,  42.00),
      ('2020-01-08', 1,  27.00),
      ('2020-01-08', 2,   8.00),
      ('2020-01-08', 3,   8.00),
      ('2020-01-08', 4,  12.00)
    --------------
     
    --------------
    select * from `test`
    --------------
     
    +----+------------+-----+--------+
    | id | date       | ref | val    |
    +----+------------+-----+--------+
    |  1 | 2020-01-05 |   1 | 150.00 |
    |  2 | 2020-01-05 |   2 |  25.00 |
    |  3 | 2020-01-05 |   3 |  12.00 |
    |  4 | 2020-01-05 |   4 |  17.00 |
    |  5 | 2020-01-05 |   5 |  42.00 |
    |  6 | 2020-01-08 |   1 |  27.00 |
    |  7 | 2020-01-08 |   2 |   8.00 |
    |  8 | 2020-01-08 |   3 |   8.00 |
    |  9 | 2020-01-08 |   4 |  12.00 |
    +----+------------+-----+--------+
    --------------
    select  t1.`date`,
            t1.val - t2.tot as calcul
     
               from  `test` as t1
     
    left outer join  (  select  `date`,
                                sum(val) as tot
                          from  `test`
                         where  ref > 1
                           and  ref < 4
                      group by  `date`
                     ) as t2
                 on  t2.`date` = t1.date
     
              where  t1.ref = 1
    --------------
     
    +------------+--------+
    | date       | calcul |
    +------------+--------+
    | 2020-01-05 | 113.00 |
    | 2020-01-08 |  11.00 |
    +------------+--------+
    --------------
    COMMIT
    --------------
     
    Appuyez sur une touche pour continuer...
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2018
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Décembre 2018
    Messages : 50
    Points : 29
    Points
    29
    Par défaut
    En adaptant la requête j'ai en effet les données recherchées. Merci

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

Discussions similaires

  1. requete update en ms sql
    Par hermine dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 13/07/2007, 10h14
  2. Réponses: 4
    Dernier message: 05/07/2007, 11h07
  3. [MySQL] requete sur 2 tables sql
    Par diice dans le forum Langage SQL
    Réponses: 1
    Dernier message: 11/01/2007, 16h08
  4. Traduction d'une requete Update jet en sql server
    Par verbatim56 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 17/01/2006, 12h10
  5. Requete ASP sur Base SQL
    Par smast2005 dans le forum ASP
    Réponses: 8
    Dernier message: 22/02/2005, 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