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

Développement SQL Server Discussion :

Erreur de dépassement arithmétique pour le type int,


Sujet :

Développement SQL Server

  1. #1
    Candidat au Club
    Homme Profil pro
    Médecin
    Inscrit en
    Janvier 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Médecin
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2017
    Messages : 2
    Points : 4
    Points
    4
    Par défaut Erreur de dépassement arithmétique pour le type int,
    Bonjour,

    je n'arrive pas à résoudre ce problème, malgré toutes les lectures que j'ai pu trouver et les différents essais.
    voici le bout du code qui fait planter :
    Code SQL : 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
    DECLARE @alpha_CHD FLOAT
    DECLARE @alpha_NON_CHD FLOAT
    DECLARE @p_CHD FLOAT
    DECLARE @p_NON_CHD FLOAT
    IF @SEXE = 1
    	BEGIN
    		SET @alpha_CHD = -22.1
    		SET @p_CHD = 4.71
    		SET @alpha_NON_CHD = -26.7
    		SET @p_NON_CHD = 5.64	
    	END
    ELSE
    	BEGIN
    		SET @alpha_CHD = -29.8
    		SET @p_CHD =6.36
    		SET @alpha_NON_CHD = -31
    		SET @p_NON_CHD = 6.62
    	END
     
    DECLARE @S0_AGE FLOAT
    SET     @S0_AGE = EXP((-exp(@alpha_CHD))*POWER((@AGE - 20),@p_CHD))
     
    DECLARE @S0_AGE_P_DIX FLOAT
    SET     @S0_AGE_P_DIX = EXP((-exp(@alpha_CHD))*POWER((@AGE - 10),@p_CHD))
     
    DECLARE @S0_AGE_NON_CHD FLOAT
    SET     @S0_AGE_NON_CHD = EXP((-EXP(@alpha_NON_CHD))*POWER((@AGE - 20),@p_NON_CHD))
     
    DECLARE @S0_AGE_P_DIX_NON_CHD FLOAT
    SET     @S0_AGE_P_DIX_NON_CHD = EXP((-EXP(@alpha_NON_CHD))*POWER((@AGE - 10) ,@p_NON_CHD))

    Pour les valeurs calculs correspondant à @SEXE = 1 c'est bon mais sinon j'ai les messages d'erreurs suivant :

    Msg*232, Niveau*16, État*3, Ligne*46
    Erreur de dépassement arithmétique pour le type int, valeur = 18084450981.894852.
    Msg*232, Niveau*16, État*3, Ligne*49
    Erreur de dépassement arithmétique pour le type int, valeur = 72468007396.558228.
    Msg*232, Niveau*16, État*3, Ligne*52
    Erreur de dépassement arithmétique pour le type int, valeur = 47492948369.264870.
    Msg*232, Niveau*16, État*3, Ligne*55
    Erreur de dépassement arithmétique pour le type int, valeur = 201425553521.769930.

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 89
    Points : 117
    Points
    117
    Par défaut
    Bonjour,

    Je ne vois pas la déclaration pour @AGE mais je me demande si ce n'est pas du INT...
    Essayez de faire un CAST(@AGE AS FLOAT) amha.


    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
    DECLARE @AGE INT
    DECLARE @SEXE INT
     
    SET @SEXE = 1
    SET @AGE = 59
     
     
    -------------------------
    DECLARE @alpha_CHD FLOAT
    DECLARE @alpha_NON_CHD FLOAT
    DECLARE @p_CHD FLOAT
    DECLARE @p_NON_CHD FLOAT
    IF @SEXE = 1
    	BEGIN
    		SET @alpha_CHD = -22.1
    		SET @p_CHD = 4.71
    		SET @alpha_NON_CHD = -26.7
    		SET @p_NON_CHD = 5.64	
    	END
    ELSE
    	BEGIN
    		SET @alpha_CHD = -29.8
    		SET @p_CHD =6.36
    		SET @alpha_NON_CHD = -31
    		SET @p_NON_CHD = 6.62
    	END
    *
    DECLARE @S0_AGE FLOAT
    SET     @S0_AGE = EXP((-exp(@alpha_CHD))*POWER((CAST(@AGE AS FLOAT) - 20),@p_CHD))
    *
    DECLARE @S0_AGE_P_DIX FLOAT
    SET     @S0_AGE_P_DIX = EXP((-exp(@alpha_CHD))*POWER((CAST(@AGE AS FLOAT) - 10),@p_CHD))
    *
    DECLARE @S0_AGE_NON_CHD FLOAT
    SET     @S0_AGE_NON_CHD = EXP((-EXP(@alpha_NON_CHD))*POWER((CAST(@AGE AS FLOAT) - 20),@p_NON_CHD))
    *
    DECLARE @S0_AGE_P_DIX_NON_CHD FLOAT
    SET     @S0_AGE_P_DIX_NON_CHD = EXP((-EXP(@alpha_NON_CHD))*POWER((CAST(@AGE AS FLOAT) - 10) ,@p_NON_CHD))
     
    SELECT @S0_AGE, @S0_AGE_NON_CHD, @S0_AGE_P_DIX, @S0_AGE_P_DIX_NON_CHD, @AGE
    HTH,

  3. #3
    Candidat au Club
    Homme Profil pro
    Médecin
    Inscrit en
    Janvier 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Médecin
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2017
    Messages : 2
    Points : 4
    Points
    4
    Par défaut erreur de dépassement
    et oui effectivement, je me sens un peu bête, merci beaucoup

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/04/2015, 19h15
  2. Erreur de dépassement arithmétique SQL2005
    Par Ligne34 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 19/08/2009, 16h30
  3. convertir 0 en null pour un type int
    Par tortuegenie dans le forum ASP.NET
    Réponses: 4
    Dernier message: 23/10/2008, 15h31
  4. [Bug] Erreur de dépassement arithmétique
    Par Commodore dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/10/2007, 17h49
  5. EXP(1230) = erreur de dépassement arithmétique !
    Par Mohammmed dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 29/08/2007, 21h58

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