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 et SQL. Discussion :

Champ calculé bizarre [AC-2016]


Sujet :

Requêtes et SQL.

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 423
    Points : 133
    Points
    133
    Par défaut Champ calculé bizarre
    Bonjour à tous,

    Après quelques aspirines destinés à calmer ma migraine, je donne ma langue au chat pour un problème qui me fait légèrement péter un câble.

    Dans une requête de sélection toute simple, j'affiche un champ calculé du genre (champ1 + champ2) x champ3 x champ4. Et bien je ne comprends pas pourquoi le résultat retourné n'est pas celui qu'il devrait être.

    Exemple, selon la formule ci-dessus, j'ai un enregistrement avec (116+0)*1*143,7 qui donne après calcul le résultat de 16669.19921875 au lieu de tout simplement 16669,2. Pourquoi ?

    Je mets en pièce jointe quelques données histoire de mieux illustrer le problème, si quelqu'un peut regarder la requête nommée rqtTest et me dire ce qui cloche...

    Merci
    Fichiers attachés Fichiers attachés

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 423
    Points : 133
    Points
    133
    Par défaut
    Je viens de me rendre compte qu'en convertissant la table tblTest en tableau Excel, le champ c4 affiche une valeur avec un tas de virgules

    Du coup j'ai essayé de modifier ce champ dans la table en le passant en réel double au lieu de réel simple, et là on voit clairement le problème.

    Je n'y comprends rien...

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Le problème est qu'Access caste implicitement le. Type de champ!

    Dans Sql serveur integer * double = integer!

    Vérifies que les champs on bien le même type et la même précision décimale.

  4. #4
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 700
    Points : 14 705
    Points
    14 705
    Par défaut
    Bonjour,
    Du coup j'ai essayé de modifier ce champ dans la table en le passant en réel double au lieu de réel simple, et là on voit clairement le problème.
    passe tes champs c1 à c4 en monétaire (avec un format: Standard et décimales: 2 pour le visuel) car le réel simple (le double aussi) n'est pas ... simple à utiliser dans les calculs à cause de ces décimales infinies, alors qu'avec le monétaire, Access tronque à 4 décimales et n'utilise pas (ou très peu) le système de virgule flottante dans les calculs.
    Normalement tu n'auras plus que 2 décimales.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 423
    Points : 133
    Points
    133
    Par défaut
    Merci à tous les 2 pour vos réponses.

    En fait, j'ai mis tous les champs qui posent problème (car j'ai remarqué qu'il y en avait d'autres dans ma base grandeur nature) en réel double et j'ai réentré les bonnes valeurs à la main.

    Il n'y avait que quelques centaines d'enregistrements donc ça a pu se faire sans que ce soit trop fastidieux. Je mets le format monétaire directement dans le formulaire.

    En tous cas la prochaine fois je serai très attentif au type de mes champs !

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

Discussions similaires

  1. Group by à partir d'un champ calculé || substr
    Par SegmentationFault dans le forum Bases de données
    Réponses: 4
    Dernier message: 30/07/2004, 15h55
  2. Recherche sur champ calculé
    Par srvremi dans le forum Bases de données
    Réponses: 5
    Dernier message: 06/07/2004, 14h04
  3. Réponses: 2
    Dernier message: 22/03/2004, 10h50
  4. champ calculé
    Par tomm dans le forum Bases de données
    Réponses: 22
    Dernier message: 25/02/2004, 00h31
  5. [TQuery] champs calculés
    Par Amenofis dans le forum Bases de données
    Réponses: 2
    Dernier message: 07/01/2004, 14h46

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