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

SQL Procédural MySQL Discussion :

ProcStock avec une liste variable d'id en paramètre [MySQL-5.5]


Sujet :

SQL Procédural MySQL

  1. #1
    Membre habitué Avatar de hiul dragonfel
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 199
    Points : 155
    Points
    155
    Par défaut ProcStock avec une liste variable d'id en paramètre
    Bonjour j'ai une procStock qui aurai besoin d'une liste variable d'IDs mais je ne sais pas comment la passer.

    Le problème est le suivant :

    Je dois établir un lien entre un règlement et différentes factures tout se passe bien tant qu'il n'y a pas besoin d'identifier clairement les factures... je m'explique.

    si un client solde toutes ses factures d'un coup il n'y a besoin que de solder toutes les factures non soldé du client, pas de problèmes non plus dans le cas du règlement d'un acompte sur une ou plusieurs factures car il me suffit de rechercher soit la facture en particulier soit de prendre les factures non solder et de solder ce que je peux. dans tout les cas précédents je n'ai besoin que d'une seule information à la fois.

    ça se complique lorsque je dois solder plusieurs factures explicitement pointées avec un seul règlement.

    voici ce que je dois faire pour chaque règlement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    factures |   | reglement_facture |   | reglements |
    id_fac   |1-n| id_fac            |   |            |
    montant  |   | id_reg            |n-1| id_reg     |
             |   | montant_regle     |   | montant    |
    sachant que les montants peuvent ne pas solder complètement une facture je dois garder une trace précise de chaque transaction pour ne pas attribuer un règlement à une facture déjà soldée.

    d'où la difficulté dans une procstock lorsque je dois solder plusieurs factures clairement identifiés pour le même client.

    il faut dans ce cas que je donne les ids de ces factures à la procédure qui va créer un seul règlement pour celles-ci.

    Si vous savez comment faire pour passer plusieurs IDs à une procStock merci.
    Le langage de programmation le plus vieux, le plus optimiser et le plus efficace est l'ADN quelqu'un d'extrêmement intelligent l'a obligatoirement inventé.

  2. #2
    Membre habitué Avatar de hiul dragonfel
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 199
    Points : 155
    Points
    155
    Par défaut
    j'ai trouvé !!!!

    c'est simple en fait... u_u

    Il suffit de formater sa liste pour que chaque valeur soit séparé par des virgules et de faire une recherche avec FIND_IN_SET().

    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
     
     
    CREATE PROCEDURE `ma_proc`(IN s_mouvements CHAR(1024), IN d_solde DECIMAL(10,2), IN d_date_emition DATE)
    begin
     DECLARE ptr_mvts CURSOR FOR
     SELECT 	mc.montant + SUM(IFNULL(mr.reglement, 0)) as reste,
    		mc.mouvement,
    		f.id_etat_facture
     FROM mouvements_comptable as mc
     INNER JOIN factures as f
     ON f.id_facture = mc.id_facture
     LEFT JOIN mouvements_reglements as mr 
     ON mr.mouvement = mc.mouvement
    ##############################################
     WHERE mc.mouvement FIND_IN_SET(s_mouvements)
    ##############################################
     GROUP BY mc.mouvement
     ORDER BY type_facture DESC, f.date_debut ASC;
     [...]
    end
    Le langage de programmation le plus vieux, le plus optimiser et le plus efficace est l'ADN quelqu'un d'extrêmement intelligent l'a obligatoirement inventé.

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

Discussions similaires

  1. [RegEx] Traiter une liste variable avec seul pattern
    Par rv2931 dans le forum Langage
    Réponses: 1
    Dernier message: 30/11/2010, 17h48
  2. Passer une liste variable avec pysqlite
    Par davguez dans le forum Bibliothèques tierces
    Réponses: 2
    Dernier message: 05/07/2010, 10h57
  3. liste déroule paramétée avec une zone variable
    Par Patnel dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 04/04/2008, 15h32
  4. alligner des textbox (input) avec une liste
    Par sundjata dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 20/01/2006, 15h16
  5. Remplir 3 champs textes différents avec une liste déroulante
    Par azorol dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/12/2005, 00h04

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