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 :

Calculer une différence entre 2 enregistrements


Sujet :

Requêtes et SQL.

  1. #1
    Candidat au Club
    Inscrit en
    Janvier 2012
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 9
    Points : 2
    Points
    2
    Par défaut Calculer une différence entre 2 enregistrements
    Bonjour,

    Je me suis mis à Access (2003) il y a un mois, et j'ai un problème que je n'arrive pas à résoudre.

    J'ai une table avec plusieurs champs :
    N° Dépot ; N° Ouvrage ; Quantité

    qui correspond à la quantité de livres que j'ai laissé en dépot.

    Je souhaite créer une requète qui, pour un ouvrage sélectionné, m'en affiche la liste des dépots (jusqu'ici, je m'en sors), mais surtout me créé un nouveau champ "Évolution" en me calculant la différence avec la champ précédent.

    Exemple :
    N° Dépot - Quantité - Évolution
    1 5 0
    2 4 -1
    3 6 +2

    Quelqu'un pourrait-il m'aider ?

    Merci par avance...

  2. #2
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    Bonjour,
    La requête peut ressembler à ça
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Depot_1.[N° depot] As Numéro, Depot.[N° depot] As Quantité, [Depot_1]![quantité]-[Depot]![quantité] AS Evolution 
    FROM Depot, Depot AS Depot_1 
    WHERE (((Depot.[N° depot])=[Depot_1]![N° Depot]-1));
    J'ai ici nommé la table Depot.

  3. #3
    Candidat au Club
    Inscrit en
    Janvier 2012
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    La requête marche impeccable. Merci beaucoup.

    Mon problème, c'est que je ne comprends pas vraiment ce que tu as fait (oui, j'suis un peu un boulet, désolé).
    Sans vouloir abuser, tu pourrais pas m'expliquer les différentes étapes...
    Merci...

  4. #4
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    Bonsoir,
    Pour créer cette requête il faut utiliser 2 fois la même table d'ou Depot et Depot_1
    SELECT sélectionne les champs à afficher
    FROM champs des tables citées ici
    WHERE (((Depot.[N° depot])=[Depot_1]![N° Depot]-1)) est la condition de la sélection qui va lier un enregistrement à l'enregistrement précédent de la même table
    Les champs et opérations sont sélectionnés dans la même table mais sur des enregistrements successifs.
    Est-ce clair ?

  5. #5
    Candidat au Club
    Inscrit en
    Janvier 2012
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Je réponds un peu tard, mais merci beaucoup pour ton aide !

Discussions similaires

  1. Calculer une différence entre deux dates
    Par attif0709 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 27/04/2010, 12h06
  2. Réponses: 3
    Dernier message: 19/09/2008, 10h35
  3. [Time] comment calculer une différence entre deux Time?
    Par adil_vpb dans le forum API standards et tierces
    Réponses: 12
    Dernier message: 13/03/2007, 17h02
  4. Réponses: 3
    Dernier message: 01/02/2007, 14h50
  5. [Dates] Calcul d'une différence entre deux heures
    Par loreleï85 dans le forum Langage
    Réponses: 12
    Dernier message: 28/06/2006, 11h43

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