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 d'ecart dans une requete


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 18
    Points : 10
    Points
    10
    Par défaut Calcul d'ecart dans une requete
    Bonjour,
    Question de débutant !
    j'ai une table (simplifié) avec 3 champs : nom,prenom,valeur
    1er enregistrement : dupont,titi,300
    2eme : dupont,titi,500

    je voudrais faire une requete calculant la différence entre les deux valeurs
    mais je seche !
    je sais faire une somme, une moyenne,etc... mais pas une soustraction !

    bien sur je ne veut pas utiliser de code vba
    Si quelqu'un a une idée !

    Merci
    Yves

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 370
    Points
    34 370
    Par défaut
    bonjour,
    sous access, tu peux te contenter d'écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT T.A - T.B FROM MaTable T WHERE C = 3;

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    merci pour ta réponse
    mais que represente tes t.a , t.b , T et C ?

  4. #4
    Inscrit

    Profil pro
    Inscrit en
    Février 2004
    Messages
    862
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 862
    Points : 1 229
    Points
    1 229
    Par défaut
    On doit pouvoir le faire avec une jointure, mais en se basant sur ta description simplifiée ce n'est pas évident...

    Est-ce que tu pourrais donner la structure complète de ta table ?
    Et quelques précisions ? Est-ce qu'il ne peut y avoir que 2 lignes avec "dupont, titi, xxx" ou plus que 2 ? Sur quels critères souhaites-tu choisir la ligne d'origine et celle(s) à soustraire ?

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    problème insoluble en l'état ajouter un numéro unique à la table ou une date de ref

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    ma structure est celle donné (d'autre éléments peuvent y etre ajouté mais n'apporte rien de plus au probleme)
    il peut y avoir plusieurs enregistrement pour une meme personne mais on ne gardera que l'année n et n-1. la difference est donc a calculer sur ces deux valeur (mise dans la requete avec un OU et trié en ordre croissant). le code sql pour la requete sans calcul donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT MaTable.nom, MaTable.prenom, MaTable.montant, MaTable.annee
    FROM MaTable
    WHERE (((MaTable.annee)="2006")) OR (((MaTable.annee)="2007"))
    ORDER BY MaTable.annee DESC;

  7. #7
    Inscrit

    Profil pro
    Inscrit en
    Février 2004
    Messages
    862
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 862
    Points : 1 229
    Points
    1 229
    Par défaut
    Citation Envoyé par the_manfr Voir le message
    ma structure est celle donné (d'autre éléments peuvent y etre ajouté mais n'apporte rien de plus au probleme)
    Si tu le dis...N'empêche qu'une colonne identifiante serait bien utile...

    Bref, ça peut être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select t1.nom, t1.prenom, (t1.montant - t2.montant) as 'difference'
    from matable t1 left join matable t2 on t1.nom = t2.nom and t1.prenom = t2.prenom
    where t1.annee = 2007 
    and t2.annee = 2006
    en supposant que le couple nom + prenom peut servir d'identifiant...ce qui es tloin d'être garanti

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    super ! ca marche parfaitement !
    Encore merci

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

Discussions similaires

  1. [AC-2010] Calcul de Date dans une requete
    Par byters dans le forum IHM
    Réponses: 6
    Dernier message: 19/05/2013, 20h03
  2. calcul pourcentage dans une requete imbriquée
    Par timal78 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 10/07/2007, 14h28
  3. Problèmes de calcul dans une requete imbriquée
    Par LeNovice dans le forum Langage SQL
    Réponses: 6
    Dernier message: 21/03/2007, 16h56
  4. colonne de calcul dans une requête
    Par Virgile59 dans le forum Access
    Réponses: 2
    Dernier message: 27/10/2006, 14h55
  5. Calculs dans une requete avec conditions multiples
    Par Sha1966 dans le forum Access
    Réponses: 3
    Dernier message: 13/01/2006, 15h18

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