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

Requêtes MySQL Discussion :

quel type de champs


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 431
    Points : 79
    Points
    79
    Par défaut quel type de champs
    bonjour,

    je souhaite faire la somme de quelques valeurs, comme 5,5 + 27,5 + 0,25 +... = 33,25
    quel est le type que ke dois accordé à ce champs (au niveau d'une table mysql) ?

    j'ai essayé INT => dans le resultat il somme pas les virgules.
    avec Float (3,2) => la somme du resultat est fausse..

    merci d'avance

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Les champs sont à la campagne ou dans les formulaires, pas dans les tables SQL qui ne sont composées que de colonnes et de lignes.

    Le type qui permet des calculs décimaux exacts est DECIMAL.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Bonjour,

    les types numéric c'est par ici : http://dev.mysql.com/doc/refman/5.5/...ric-types.html

  4. #4
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 431
    Points : 79
    Points
    79
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Le type qui permet des calculs décimaux exacts est DECIMAL.
    j'ai mits le type de la colonne sur Décimal => ce qui vient apres la virgule ne s'aditionne pas

  5. #5
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    comment avez vous déclarez votre colonne exactement ?

  6. #6
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 431
    Points : 79
    Points
    79
    Par défaut
    je vous ai mit une capture ci joint...
    Images attachées Images attachées  

  7. #7
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Taille/Valeurs : 10,0
    Autrement dit : 0 chiffre après la virgule !

    Punkoff vous a pourtant donné le lien vers la définition des types numériques !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  8. #8
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 431
    Points : 79
    Points
    79
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Autrement dit : 0 chiffre après la virgule !

    Punkoff vous a pourtant donné le lien vers la définition des types numériques !
    la taille s'est genéré toute seule..c'est pas moi qui la défini...
    en tous les cas merci

  9. #9
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par laure07 Voir le message
    la taille s'est genéré toute seule..c'est pas moi qui la défini...
    en tous les cas merci
    Il propose quelque chose par défaut, surtout si c'est un changement de type venant de INTEGER ! Il est évident qu'il faut vérifier ce qu'il y a à l'écran avant de valider !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  10. #10
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 431
    Points : 79
    Points
    79
    Par défaut
    j'ai mis la taille à 10,2 ==> meme souci : ce qui vient apres la virgule ne s'aditionne pas!!!

  11. #11
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Quelle est la requête ?

    Donne le script de création de la table et un petit jeu de données.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  12. #12
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 431
    Points : 79
    Points
    79
    Par défaut
    voivi la requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT libelle, sum(TP) as 'TP', sum(TF) as 'TP' ,sum(TP)/sum(TA) as 'Pro', sum(TF)/sum(TA) as 'Ren'  
    FROM `tableA` a, `tableB` b, tableC c
    WHERE  jointure entre les tables...  
    Group by  a.libelle

  13. #13
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Les jointures s'écrivent depuis 20 ans avec l'opérateur JOIN ; il serait temps de s'y mettre !

    Petit jeu de données, résultat attendu et résultat obtenu. Ça aiderait à comprendre ce qui ne va pas parce que je ne vois a priori rien d'anormal dans la requête.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  14. #14
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 431
    Points : 79
    Points
    79
    Par défaut
    voici les valeurs réelles de ma colonne que je souhaite sommer :

    5,5 + 27,5 + 3,5 + 15,5 + 1 + 4,5 + 3,25 +0 +0 + 0 +2,37 + 1 +4,5 + 0
    + 0 + 0 + 0,25 + 0 + 0 + 3,5 + 0 + 0 + 0,87 + 0 + 0 + 2 + 0

    normalement le total est : 75,24

    alors que ca m'affiche que 70

  15. #15
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par laure07 Voir le message
    voici les valeurs réelles de ma colonne que je souhaite sommer :

    5,5 + 27,5 + 3,5 + 15,5 + 1 + 4,5 + 3,25 +0 +0 + 0 +2,37 + 1 +4,5 + 0
    + 0 + 0 + 0,25 + 0 + 0 + 3,5 + 0 + 0 + 0,87 + 0 + 0 + 2 + 0

    normalement le total est : 75,24

    alors que ca m'affiche que 70
    Il y a 4 sommes dans ta requête !

    Quelle colonne de quelle table est concernée ?
    Est-ce que les jointures entre les tables ne supprimeraient pas certaines valeurs du résultat, ce qui expliquerait le total que tu considères erroné ?

    Encore une fois, sans jeu de données et description précise des tables, on ne peut pas t'aider à comprendre ce qu'il se passe. Juste te donner des pistes. Et le jeu de piste, ça te fait perdre du temps et à nous aussi !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  16. #16
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 431
    Points : 79
    Points
    79
    Par défaut
    alors, sans passé par lé jointure, j'ai fait une requete directement sur ma tableA :

    celle-ci contient plusieurs colonnes: "id" et "TP" ...

    les valeurs que j'ai deja communiqué se trouvent dans la colonne "TP"

    donc j'ai fait une requete toute bete directement dans mysql :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id,  sum(TP) FROM `tableA`
    et pourtant le resultat est de 70 au lieu de 75,24

    puis j'ai pensé a verifier que la colonne TP contient bien les valeurs que je souhaite sommer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT TP
    FROM tableA
    à ma surprise les valeurs contiennent toutes des 00 aprés la virgule!!!!!!

    donc le 70 qui s'affiche est correct ... mais pourquoi ce qui vient apres la virgure ne s'insére pas dans ma tableA (colonne TP)...

    j'ai rechargé la tableA => meme souci

  17. #17
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Si la colonne était avant de type INT et qu'elle contenait des données, c'est normal qu'après changement du type en DECIMAL, il n'y ait que des zéros après la virgule !

    j'ai rechargé la tableA => meme souci
    Comment l'avez-vous rechargée ?

    Le jeu de piste continue...
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  18. #18
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 431
    Points : 79
    Points
    79
    Par défaut
    effectivement au début le type de la colonne etait bien INT ...

    la source de données est un fichier csv ...que je charge via un script php ...

    quelle est la solution maintenant ... suprimer carement la table et créer une nouvelle?

  19. #19
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    la source de données est un fichier csv ...que je charge via un script php ...
    Et comme j'ai une très bonne vue et un accès direct à ton ordinateur, je peux ouvrir ce fichier PHP et deviner ce qui cloche !

    Le jeu de piste continue !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  20. #20
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 431
    Points : 79
    Points
    79
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Et comme j'ai une très bonne vue et un accès direct à ton ordinateur, je peux ouvrir ce fichier PHP et deviner ce qui cloche !

    Le jeu de piste continue !
    ya rien de magique ...des colonne et des lignes..ci joint la colonne TP avec les valeurs (où ya bien deux chiffres apres virgules)
    Images attachées Images attachées  

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. quel type de champ pour un format monétaire
    Par tavarlindar dans le forum Requêtes
    Réponses: 2
    Dernier message: 13/08/2008, 23h38
  2. Quel type de champs pour les case a cocher
    Par leroidje dans le forum Autres
    Réponses: 1
    Dernier message: 15/02/2008, 13h54
  3. [aide] Quel type de champs utiliser pour mettre un "+"
    Par lothar59 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 04/03/2007, 14h05
  4. [MySQL] quel type de champ pour un tableau serializé
    Par lodan dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 17/11/2006, 14h37
  5. [SQL Server] Quel type de champ pour du commentaire
    Par brmartin dans le forum Langage SQL
    Réponses: 6
    Dernier message: 24/07/2006, 12h51

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