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

MySQL Discussion :

procédures stockées et tableau


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 58
    Par défaut procédures stockées et tableau
    bonjour,

    j'aimerai savoir si il est possible de parser un tableau dans une proc stoc ??
    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
     
    CREATE PROCEDURE test.tab_quotiten( IN nb_echeance INT, 
    IN mois INT, IN annee INT, IN capital INT, IN taux FLOAT, 
    IN ass FLOAT, IN Q1 FLOAT, IN Q2 FLOAT, IN Q3 FLOAT, IN Q4 FLOAT, IN Q5 FLOAT, IN Q6 FLOAT, IN Q7 FLOAT, IN Q8 FLOAT, 
    IN Q9 FLOAT, IN Q10 FLOAT, IN Q11 FLOAT, IN Q12 FLOAT, IN Q13 FLOAT, IN Q14 FLOAT, IN Q15 FLOAT, IN Q16 FLOAT, 
    IN Q17 FLOAT, IN Q18 FLOAT, IN Q19 FLOAT, IN Q20 FLOAT, IN Q21 FLOAT, IN Q22 FLOAT, IN Q23 FLOAT, IN Q24 FLOAT, IN Q25 FLOAT)
    BEGIN 
    DECLARE id INT DEFAULT 0;
    DECLARE nb_mois INT DEFAULT 1;
    DECLARE i FLOAT ;
    DECLARE j INT DEFAULT 0 ;
    DECLARE a FLOAT;
    DECLARE Echeance FLOAT;
    DECLARE x, y, b FLOAT;
    DECLARE Crd FLOAT;
    DECLARE Interet FLOAT;
    DECLARE capital_amort FLOAT;
    DECLARE echean_totale FLOAT;
    DECLARE Interet_Infine FLOAT ;
    DECLARE capital_infine FLOAT ;
    DECLARE Q0 FLOAT ; 
     
    SET Crd = capital;
    SET Q0 = Q1;
    WHILE nb_mois <= nb_echeance DO
    SET i = ((nb_mois - 1 ) / 12);
    SET j = TRUNCATE(i,0);
     
     
    	IF ((i != 0) && (j = i))
    	THEN
    		SET Q0 = Q1 ;
    		SET Q1 = Q2; SET Q2 = Q3; SET Q3 = Q4; SET Q4 = Q5;
    		SET Q5 = Q6; SET Q6 = Q7; SET Q7 = Q8; SET Q8 = Q9;
    		SET Q9 = Q10; SET Q10 = Q11; SET Q11 = Q12; SET Q12 = Q13;
    		SET Q13 = Q14; SET Q14 = Q15; SET Q15 = Q16; SET Q16 = Q17;
    		SET Q17 = Q18; SET Q18 = Q19; SET Q19 = Q20; SET Q20 = Q21;
    		SET Q21 = Q22; SET Q22 = Q23; SET Q23 = Q24; SET Q24 = Q25;
     
    	END IF;
     
     
    	IF (( i = 0 || Q1 != Q0) && ( j = i))
    	THEN
    		SET capital_infine = (Crd *( 1 - Q1));
    		SET capital_amort = Crd - capital_infine ;
    		-- Calcul de l-echeance amortissable
    		SET x = (capital_amort * (taux /12 ));
    		SET y = pow(( 1 + (taux /12)), - (nb_echeance - nb_mois + 1 ));
    		SET Echeance = x / ( 1 - y );
    		-- Calcul des interet pour la part Infine
    		SET Interet_Infine = ((capital_infine) * (taux / 12 ));
     
    	END IF;
    		SET a = Crd - capital_infine;
    		SET b = a * (taux /12);
    		SET capital_amort = Echeance - b;
    		SET echean_totale = Interet_infine + Echeance + ass ;
    		SET Crd = Crd - capital_amort;
     
     
    INSERT INTO test.tab_quotiten (`id`,`nb`, `i`,`mois`,	`annee`, `Quotite`,`interet`,`capital_amortit`,`echeance`,`assurance`,`echeance_totale`, `interet_infine`, `KInfine`, `CRD`) 
    VALUES (`id`,`nb_mois`,	`i`,`mois`,	`annee`,`Q1`,`b`,`capital_amort`,`Echeance`,`ass`,`echean_totale`,`Interet_Infine`,`capital_infine`, `Crd`) ;
    	IF mois = 12 THEN
    		SET mois = 1;
    		SET annee = annee + 1;
    	ELSE
    		SET mois = mois + 1 ;
    	END IF;
    SET nb_mois = nb_mois + 1 ;
     
     
    END WHILE ;
    END $$
    Q1, Q2......... vont être dans un tableau en php
    Merci

  2. #2
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 514
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 514
    Par défaut
    Citation Envoyé par deborah95 Voir le message
    bonjour,

    j'aimerai savoir si il est possible de parser un tableau dans une proc stoc ??
    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
     
    CREATE PROCEDURE test.tab_quotiten( IN nb_echeance INT, 
    IN mois INT, IN annee INT, IN capital INT, IN taux FLOAT, 
    IN ass FLOAT, IN Q1 FLOAT, IN Q2 FLOAT, IN Q3 FLOAT, IN Q4 FLOAT, IN Q5 FLOAT, IN Q6 FLOAT, IN Q7 FLOAT, IN Q8 FLOAT, 
    IN Q9 FLOAT, IN Q10 FLOAT, IN Q11 FLOAT, IN Q12 FLOAT, IN Q13 FLOAT, IN Q14 FLOAT, IN Q15 FLOAT, IN Q16 FLOAT, 
    IN Q17 FLOAT, IN Q18 FLOAT, IN Q19 FLOAT, IN Q20 FLOAT, IN Q21 FLOAT, IN Q22 FLOAT, IN Q23 FLOAT, IN Q24 FLOAT, IN Q25 FLOAT)
    BEGIN 
    DECLARE id INT DEFAULT 0;
    DECLARE nb_mois INT DEFAULT 1;
    DECLARE i FLOAT ;
    DECLARE j INT DEFAULT 0 ;
    DECLARE a FLOAT;
    DECLARE Echeance FLOAT;
    DECLARE x, y, b FLOAT;
    DECLARE Crd FLOAT;
    DECLARE Interet FLOAT;
    DECLARE capital_amort FLOAT;
    DECLARE echean_totale FLOAT;
    DECLARE Interet_Infine FLOAT ;
    DECLARE capital_infine FLOAT ;
    DECLARE Q0 FLOAT ; 
     
    SET Crd = capital;
    SET Q0 = Q1;
    WHILE nb_mois <= nb_echeance DO
    SET i = ((nb_mois - 1 ) / 12);
    SET j = TRUNCATE(i,0);
     
     
    	IF ((i != 0) && (j = i))
    	THEN
    		SET Q0 = Q1 ;
    		SET Q1 = Q2; SET Q2 = Q3; SET Q3 = Q4; SET Q4 = Q5;
    		SET Q5 = Q6; SET Q6 = Q7; SET Q7 = Q8; SET Q8 = Q9;
    		SET Q9 = Q10; SET Q10 = Q11; SET Q11 = Q12; SET Q12 = Q13;
    		SET Q13 = Q14; SET Q14 = Q15; SET Q15 = Q16; SET Q16 = Q17;
    		SET Q17 = Q18; SET Q18 = Q19; SET Q19 = Q20; SET Q20 = Q21;
    		SET Q21 = Q22; SET Q22 = Q23; SET Q23 = Q24; SET Q24 = Q25;
     
    	END IF;
     
     
    	IF (( i = 0 || Q1 != Q0) && ( j = i))
    	THEN
    		SET capital_infine = (Crd *( 1 - Q1));
    		SET capital_amort = Crd - capital_infine ;
    		-- Calcul de l-echeance amortissable
    		SET x = (capital_amort * (taux /12 ));
    		SET y = pow(( 1 + (taux /12)), - (nb_echeance - nb_mois + 1 ));
    		SET Echeance = x / ( 1 - y );
    		-- Calcul des interet pour la part Infine
    		SET Interet_Infine = ((capital_infine) * (taux / 12 ));
     
    	END IF;
    		SET a = Crd - capital_infine;
    		SET b = a * (taux /12);
    		SET capital_amort = Echeance - b;
    		SET echean_totale = Interet_infine + Echeance + ass ;
    		SET Crd = Crd - capital_amort;
     
     
    INSERT INTO test.tab_quotiten (`id`,`nb`, `i`,`mois`,	`annee`, `Quotite`,`interet`,`capital_amortit`,`echeance`,`assurance`,`echeance_totale`, `interet_infine`, `KInfine`, `CRD`) 
    VALUES (`id`,`nb_mois`,	`i`,`mois`,	`annee`,`Q1`,`b`,`capital_amort`,`Echeance`,`ass`,`echean_totale`,`Interet_Infine`,`capital_infine`, `Crd`) ;
    	IF mois = 12 THEN
    		SET mois = 1;
    		SET annee = annee + 1;
    	ELSE
    		SET mois = mois + 1 ;
    	END IF;
    SET nb_mois = nb_mois + 1 ;
     
     
    END WHILE ;
    END $$
    Q1, Q2......... vont être dans un tableau en php
    Merci
    Il y a pas de notion de tableau mais il est possible de créer un select qui est en faite un tableau.

Discussions similaires

  1. Procédure stocké, un tableau de int en paramètre
    Par Oberown dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 21/06/2006, 10h44
  2. Réponses: 7
    Dernier message: 13/12/2005, 16h31
  3. Réponses: 6
    Dernier message: 18/05/2005, 14h04
  4. Réponses: 7
    Dernier message: 14/02/2005, 10h40
  5. Passer un tableau à une procédure stockée
    Par biroule dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 10/09/2004, 18h21

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