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 :

Opérations Arithmétiques Sql


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Homme Profil pro
    Apprenti ingenieur administrateur systèmes
    Inscrit en
    Octobre 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Apprenti ingenieur administrateur systèmes
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2012
    Messages : 67
    Points : 41
    Points
    41
    Par défaut Opérations Arithmétiques Sql
    Bonjour,

    J'aimerai si c'est possible de faire ce genre d'opérations en SQL?

    J'ai actuellement ces reqûetes :

    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
    SELECT SUM(affeng) FROM
    (
    	SELECT count(a.id)  as affeng
    		FROM affaire a
    		inner JOIN evenement e ON a.id = e.affaire_id and e.type_principal_id = 444
                                                                    AND e.sous_type_id =477
                                                                    AND e.date_creation between  DATE_SUB(NOW(),INTERVAL 1 YEAR) and NOW()
     
    		WHERE
    		a.client_id  in (86261) and a.segment_marche_id != 31
    		UNION ALL
    		SELECT count(a.id)  as affclot
    		FROM affaire a
    		inner JOIN evenement e ON a.id = e.affaire_id and e.type_principal_id = 444
                                                                    AND e.sous_type_id =479
                                                                    AND e.jalon_motif_id =441
                                                                    AND e.date_creation between  DATE_SUB(NOW(),INTERVAL 1 YEAR) and NOW()
     
    		WHERE
    		a.client_id  in (86261) AND a.segment_marche_id != 31
    ) AS tmp;
    et en fait en résultat final j''aimerai pouvoir avoir cette opération : (affeng / affeng + affclot) *100 afin d'avoir un pourcentage est ce possible?

    Cordialement

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 766
    Points : 52 563
    Points
    52 563
    Billets dans le blog
    5
    Par défaut
    La formule serait plutot :
    100 * (affeng / (affeng + affclot))

    Sinon cela reviendrais à faire :
    (1 + affclot) *100

    Révisez vos maths....

    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
    SELECT 100.0 * COUNT(a.id) / 
                  (COUNT(a.id) + (SELECT count(a.id) as affclot
                                  FROM   affaire AS a
                                         INNER JOIN evenement AS e 
                                            ON a.id = e.affaire_id 
                                  WHERE  e.type_principal_id = 444 AND
                                         e.sous_type_id =479 AND 
                                         e.jalon_motif_id =441 AND 
                                         e.date_creation BETWEEN DATE_SUB(NOW(),INTERVAL 1 YEAR) 
                                                             AND NOW() AND
                                         a.client_id = 86261 AND 
                                         a.segment_marche_id <> 31)) 
    FROM   affaire as a
           INNER JOIN evenement as e 
              ON a.id = e.affaire_id 
    WHERE  e.type_principal_id = 444 AND 
           e.sous_type_id = 477 AND 
           e.date_creation BETWEEN DATE_SUB(NOW(),INTERVAL 1 YEAR) 
                               AND NOW() AND
           a.client_id  = 86261 AND 
           a.segment_marche_id <> 31;

    pour apprendre la langage SQL :
    Nom : SQL.jpg
Affichages : 415
Taille : 47,4 Ko

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/10/2014, 12h34
  2. Opération arithmétique dans un select
    Par Christophe Charron dans le forum Requêtes
    Réponses: 3
    Dernier message: 21/03/2007, 11h19
  3. Réponses: 5
    Dernier message: 17/06/2006, 12h33
  4. Opération arithmétique de String à Float
    Par Shiryu57 dans le forum Langage
    Réponses: 4
    Dernier message: 13/03/2006, 10h22
  5. [VAL] Opérations arithmétiques
    Par WriteLN dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/05/2005, 09h59

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