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

SQLite Discussion :

Calcul du produit de plusieurs lignes.


Sujet :

SQLite

  1. #1
    Membre régulier
    Homme Profil pro
    Analyste programmeur
    Inscrit en
    Septembre 2015
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : Algérie

    Informations professionnelles :
    Activité : Analyste programmeur
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2015
    Messages : 148
    Points : 92
    Points
    92
    Par défaut Calcul du produit de plusieurs lignes.
    Bonjour,

    Je suis sur un petit projet pour calculer le taux d'évolution global de plusieurs évolutions successives de taux différents
    Le coefficient multiplicateur = 1 + T = (1 + t1) × (1 + t2) × ... × (1 + tn)
    J'ai pu calculer la variation entre période ainsi que, le coefficient multiplicateur pour chaque période.

    Période T_variation C_multi
    2022-01 -0,0629 0,9371
    2022-02 0,0086 1,0086
    2022-03 -0,1193 0,8807
    2022-04 0,0249 1,0249
    2022-05 0,71 1,7100

    Mais Le problème est comment calculer le produit de C_multi (0.9371*1.0086*0.8807*1.0249*1.17100) sous forme requête SQL sous sqlite3
    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 036
    Points : 40 942
    Points
    40 942
    Billets dans le blog
    62
    Par défaut
    Une multiplication peut être une somme de logarithmes
    donc EXP(SUM(LOG(c_multi))) devrait répondre à la demande *si les fonctions mathématiques sont incluses ou version SQLite 3.35.0 +

    Edit, après tests rapides sur des données entières, il vaut mieux utiliser POW(10,SUM(log(code)))

    PS D:\sqlite> ./sqlite3.exe
    SQLite version 3.39.0 2022-06-25 14:57:57
    Enter ".help" for usage hints.
    Connected to a transient in-memory database.
    Use ".open FILENAME" to reopen on a persistent database.
    sqlite> .open D:/XE8/FMX/Magasinier/test.sdb
    sqlite> select code from matieres where code<=6;
    1
    2
    6
    3
    sqlite> select POW(10,SUM(log(code))) from matieres where code <=6;
    36.0
    sqlite> .quit
    PS D:\sqlite>
    avec vos données (P.S. un script de création et remplissage de table ainsi que le résultat souhaité eut été le bienvenu)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    CREATE TABLE MUL (
        PERIODE   TEXT,
        Variation NUMERIC,
        C_multi   NUMERIC
    );
    INSERT INTO MUL VALUES('2022-01',-0.0629, 0.9371);
    INSERT INTO MUL VALUES('2022-02', 0.0086, 1.0086);
    INSERT INTO MUL VALUES('2022-03', -0.1193, 0.8807);
    INSERT INTO MUL VALUES('2022-04', 0.0249, 1.0249);
    cela donne
    PS D:\sqlite> ./sqlite3.exe
    SQLite version 3.39.0 2022-06-25 14:57:57
    Enter ".help" for usage hints.
    Connected to a transient in-memory database.
    Use ".open FILENAME" to reopen on a persistent database.
    sqlite> .open D:/XE8/FMX/Magasinier/test.sdb
    sqlite> select * from mul
    ...> ;
    2022-05|0.71|1.71
    2022-01|-0.0629|0.9371
    2022-02|0.0086|1.0086
    2022-03|-0.1193|0.8807
    2022-04|0.0249|1.0249
    sqlite> SELECT POW(10,SUM(LOG(C_multi))) from MUL;
    1.458849535934
    sqlite>
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Membre régulier
    Homme Profil pro
    Analyste programmeur
    Inscrit en
    Septembre 2015
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : Algérie

    Informations professionnelles :
    Activité : Analyste programmeur
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2015
    Messages : 148
    Points : 92
    Points
    92
    Par défaut
    Merci,

    ça marche sur l'éditeur SQL de SQLitestudio, je vais essayer de l'intégrer dans mon programme et voir

  4. #4
    Membre régulier
    Homme Profil pro
    Analyste programmeur
    Inscrit en
    Septembre 2015
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : Algérie

    Informations professionnelles :
    Activité : Analyste programmeur
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2015
    Messages : 148
    Points : 92
    Points
    92
    Par défaut
    Bonjour,

    ça marche sur l'éditeur SQL de SQLitestudio, je vais essayer de l'intégrer dans mon programme et voir
    En intégrant "POW" dans mon programme, les calculs sont faits et sont visibles dans la base de données, mais le résultat ne s'affiche pas dans le QTableview.
    Y a t'il une idée pour solutionner ce problème.

    La version de Sqlite3 : 39.3.0

    Merci

  5. #5
    Membre régulier
    Homme Profil pro
    Analyste programmeur
    Inscrit en
    Septembre 2015
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : Algérie

    Informations professionnelles :
    Activité : Analyste programmeur
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2015
    Messages : 148
    Points : 92
    Points
    92
    Par défaut
    Bonjour,

    Le résultat de la requête ne s'affiche toujours pas sur le QTableView bien que j'ai mis à jour :

    Python : 3.10
    PyQt5 : 5.15.7
    Sqlite3 : 3.39.2 (Prise en charge de fonctions mathématiques)

    Y' a t'il quelque chose que j'ai oublié ou bien un contournement ??
    Merci

Discussions similaires

  1. [V7] Calculer le total de plusieurs lignes dans une tree view
    Par alexdess dans le forum Odoo (ex-OpenERP)
    Réponses: 7
    Dernier message: 30/01/2015, 11h03
  2. [XL-2010] j'ai un problem calcule somme produit de plusieurs variables (avec RedEdit)
    Par labiod82 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/12/2014, 00h28
  3. calcule du plusieur ligne
    Par kroma23 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/05/2011, 16h46
  4. [XL-2003] produit plusieurs ligne
    Par abdoinfo dans le forum Excel
    Réponses: 3
    Dernier message: 02/08/2010, 10h02
  5. Fonction de calcul sur plusieurs lignes
    Par babsy dans le forum SQL
    Réponses: 1
    Dernier message: 13/11/2007, 11h34

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