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 :

calcul ordinal dans une requête où il ne faut pas [AC-2010]


Sujet :

Requêtes et SQL.

  1. #1
    Membre habitué Avatar de danbo52
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 98
    Points : 125
    Points
    125
    Par défaut calcul ordinal dans une requête où il ne faut pas
    bonjour,

    titre compliqué ?

    voici mon souci.

    Dans une simple requête faite à partir d'une table de coûts, j'écris dans une cellule la formule de calcul d'un cout TTC à partir de valeurs HT, du taux de TVA et de la quantité.

    J'ai donc une cellule nommée 'quantite'
    une cellule nommée 'cout_un_ht',
    une cellule nommée 'tauxTVA%'

    je crée mon expression dans une autre cellule, à savoir:

    totalTTC : [quantite]*[cout_un_ht]*(1+[tauxTVA]*0.01)

    Très simple? Et pourtant :

    Si j'entre quantite = 1
    cout_un_ht = 100
    tauxTVA = 0

    le résultat est non pas 100, mais 101

    J'ai ajouté une seconde ligne, puis une troisième, et à chaque fois, le résultat est faux, car au lieu de prendre la vraie valeur de la TVA, Access utilise son rang dans la table (sa position ordinale)

    Ainsi, la première ligne donnera 101
    la deuxième 202, si cout_un_ht = 200
    la troisième 303, si cout_un_ht = 300

    toutes avec tauxTVA=0 !!!!!!!!

    Ai-je pêché par omission ou ai-je mal appris à l'école ?

    Merci pour vos éclaircissements.
    Hem ! J'ai souvent l'impression qu'on ne regarde que moi ! Hem !

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    As-tu une jointure sur ta table des taux de TVA ?

    Comme tu le mentionnes, tu ne sembles utiliser que la table des coûts qui doit simplement contenir la clef associée au taux et pas le taux lui-même.

    Si tu as un doute, poste le SQL de ta requête.

    Note que si tu as mis une liste de sélection pour ton taux, Access peut très bien afficher le taux mais enregistrer la clef. (Propriété "Colonne liée" de la liste).

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre habitué Avatar de danbo52
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 98
    Points : 125
    Points
    125
    Par défaut je regarde la jointure
    merci pour ton intervention (je m'étais absenté).

    Je regarde dès que possible et te renvoie la réponse !

    Cordialement

    Danbo

    Tiens, j'ai quelques minutes, la syntaxe SQL est la suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT tab_listeFactures.num, tab_listeFactures.numFact, tab_listeFactures.date_action, tab_listeFactures.client_niv_1, tab_listeFactures.specialite, tab_listeFactures.quantite, tab_listeFactures.cout_un_ht, tab_listeFactures.tauxTVA, [quantite]*[cout_un_ht] AS totalHT, [quantite]*[cout_un_ht]*(1+[tauxTVA]*0.01) AS totalTTC, tab_listeFactures.date_validation
    FROM tab_listeFactures
    WHERE (((tab_listeFactures.numFact) Is Null)) OR (((tab_listeFactures.date_validation) Is Null));
    J'ai en effet une table tauxTVA% avec une colonne de clé 1,2,3 et les valeurs correspondantes, soit 0.00, 5.50 et 19.60.

    Je vois comment faire pour que la colonne liée soit la deux, avec ma table de base.

    A bientôt !
    Hem ! J'ai souvent l'impression qu'on ne regarde que moi ! Hem !

  4. #4
    Membre habitué Avatar de danbo52
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 98
    Points : 125
    Points
    125
    Par défaut merci marot_r
    merci,

    j'ai eu le temps de transformer et le numéro de colonne liée et ma table liée, ainsi que les propriétés de la liste des taux de TVA.

    Ca fonctionne très bien.

    Merci marot_r

    Bonne soirée !
    Hem ! J'ai souvent l'impression qu'on ne regarde que moi ! Hem !

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

Discussions similaires

  1. SQL calculer pourcentage dans une requête
    Par phcm971 dans le forum HyperFileSQL
    Réponses: 13
    Dernier message: 29/10/2012, 11h15
  2. calcul heure dans une requête
    Par Daniela dans le forum VBA Access
    Réponses: 11
    Dernier message: 07/07/2009, 18h12
  3. [AC-2003] calculs spécifiques dans une requète
    Par jerem2007 dans le forum Requêtes et SQL.
    Réponses: 15
    Dernier message: 15/05/2009, 23h45
  4. Calcul heure dans une requête
    Par Accessbeotien dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 07/09/2007, 10h12
  5. Calculs complexes dans une requête
    Par ARRG dans le forum Langage SQL
    Réponses: 5
    Dernier message: 06/06/2005, 19h11

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