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

Langage SQL Discussion :

[MySQL 5.0] Cumul d'un montant avec une clé primaire auto_increment


Sujet :

Langage SQL

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 5
    Points : 4
    Points
    4
    Par défaut [MySQL 5.0] Cumul d'un montant avec une clé primaire auto_increment
    Bonjour,

    je travaille sous MySQL 5.0

    j'ai une table Historique comme suit :

    NumAuto, Compte, Date, Lettrage, Debit,Credit

    j'aimerais créer une requête SQL avec un champs supplémentaire qui soit un solde progressif.

    La requete de base est celle-ci :

    SELECT h1.Compte,h1.DateEC,h1.Lettrage,h1.Debit,h1.Credit
    FROM Historique h1
    WHERE h1.Compte='00010000'
    ORDER BY h1.DateEC DESC

    j'ai pensé à faire une sous-requête, mais le numauto ne me permet pas de comparer...et même si j'utilise le numauto la sous-requête n'est pas triée dans le même ordre que la requête principale.

    Que faire ?

    Je vous mets la dernière requête que j'ai essayée sans succès :

    SELECT h1.numauto,h1.debit,h1.credit,sum(h2.debit-h2.credit) AS 'Solde Progressif'
    from historique h1 LEFT OUTER JOIN historique h2 on h2.compte=h1.compte and h2.numauto>=h1.numauto
    WHERE H1.Compte='00010000' GROUP BY h1.NumAuto ORDER BY H1.DateEC DESC

    merci d'avance
    Yann

  2. #2
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238

  3. #3
    Membre éclairé
    Avatar de efficks
    Inscrit en
    Septembre 2005
    Messages
    712
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 712
    Points : 776
    Points
    776
    Par défaut
    Mais fait très attention.
    Car avec beaucoup de ligne dans ton historique, le calcul des coûts progessifs peut devenir très lourds!
    De plus dans un système critique j'aurais plutôt tendance à faire une redondance de donnée et à créer un champ cummulatif calculé à chaque fois.

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Merci Xo,
    j'ai déjà lu ces deux posts avant de mettre le mien, c'est effectivement ce que j'aurais fait si mon NumAuto était toujours ok. Malheureusement, le numauto est complètement aléatoire, et je ne peux utiliser les comparaisons supérieur ou inférieur.

    Oui efficks, c'est ce que je vais faire probablement, malheureusement dans ce cas, il faut que j'oublie les tris !

    Je ne crois pas avoir de solution pour mon problème, je vais donc étudier des solutions alternatives moins souples.

    Merci de votre aide.

    Yann

  5. #5
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    COmment tries-tu tes enregistrements ? Par ton champ DateEC : dans ce cas, ma proposition est valable, sers-toi simplement du champ DateEC dans la sous-requête à la place du champ "Numero"

    [Edit]Si tu peux avoir plusieurs dates identiques, le cumul ne sera peut-être pas tout à fait progressif, mais sans critère de tri "deterministe", impossible de faire mieux

  6. #6
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    Bonjour
    Je suis confronté au meme type de probleme de cumul progressif, et en cherchant sur developpez.com, je suis tombé sur ce post.
    J'ai bien lu tous les posts afférents.
    N'etant pas un cador en sql, j'ai tenté de transposer dans mon problème, mais j'avoue ne pas y arriver.
    Je travailles sous VB6, avec le moteur jet d'access. Je ne vois pas tres bien comment , avec ces outils, je peux transposer les alias.
    Si quelqu'un a idée , je lui fait une tresse lauriers pour vénérer sa grandeur

    En tout cas je vous remercies tous de prendre le temps de me lire.

    Salutations

Discussions similaires

  1. [CR 10] Champs total cumulé : évaluer par groupe avec une formule
    Par leloup84 dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 13/02/2015, 09h42
  2. Probleme de connexion JDBC avec une base de donne mysql
    Par sultan_kafila dans le forum JDBC
    Réponses: 19
    Dernier message: 12/04/2006, 08h25
  3. [phpMyAdmin] Intall de phpMyAdmin 2.7 avec une BD MySQL 5 déjà installée
    Par Soutou dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 06/01/2006, 12h56
  4. Réponses: 3
    Dernier message: 06/01/2006, 08h57
  5. Dialoguer avec une BDD MySQL en language C
    Par veridik dans le forum Requêtes
    Réponses: 2
    Dernier message: 11/07/2005, 11h58

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