Ecart enregistrement précédent
Résolu
Ollam
Messages postés
77
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je voudrais dans une requête pouvoir récupérer l'écart avec l'enregistrement précédent:
Exemple:
Longueur: 150
Longueur: 100
Longueur: 80
Je voudrais pouvoir afficher dans un second champ l'écart:
Longueur: 150 | Ecart: (vide ou zéro)
Longueur: 100 | Ecart: -50
Longueur: 80 | Ecart: -20
Je suis sous Access 2007/2016
En vous remerciant par avance
Je voudrais dans une requête pouvoir récupérer l'écart avec l'enregistrement précédent:
Exemple:
Longueur: 150
Longueur: 100
Longueur: 80
Je voudrais pouvoir afficher dans un second champ l'écart:
Longueur: 150 | Ecart: (vide ou zéro)
Longueur: 100 | Ecart: -50
Longueur: 80 | Ecart: -20
Je suis sous Access 2007/2016
En vous remerciant par avance
Configuration: Windows / Chrome 96.0.4664.45
A voir également:
- Ecart enregistrement précédent
- Enregistrement mp3 gratuit - Télécharger - Streaming audio
- Telecharger studio d'enregistrement rap - Télécharger - Édition & Montage
- Enregistrement - Guide
- Comment couper un enregistrement audio - Guide
- Formule excel écart entre deux nombres - Forum Excel
8 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
comment détermines-tu le précédent? as-tu un champ qui peut servir à les trier?
comment détermines-tu le précédent? as-tu un champ qui peut servir à les trier?
Bonsoir,
EN fait la table à trois champs:
ID_longueur (numéro Auto)
date_suivi
longueur
Concernant le tri, chaque nouvelle ligne sera affiché dans l'ordre ou elle se présente.
Le but étant de montrer une évolution, une tendance
Donc la dernière ligne enregistrée, sera aussi la dernière affichée
Donc pour répondre à ta question, il est possible de déterminer le champ précédent sur l'ID qui affiche un numéro qui s'incrément automatiquement
EN fait la table à trois champs:
ID_longueur (numéro Auto)
date_suivi
longueur
Concernant le tri, chaque nouvelle ligne sera affiché dans l'ordre ou elle se présente.
Le but étant de montrer une évolution, une tendance
Donc la dernière ligne enregistrée, sera aussi la dernière affichée
Donc pour répondre à ta question, il est possible de déterminer le champ précédent sur l'ID qui affiche un numéro qui s'incrément automatiquement
La réponse est plutôt simple concernant mes connaissance en SQL, entre -1 et 0 !!!!
J'ai développé plusieurs bds sur Access, mais toujours très simple comme une encyclopédie sur les gemmes, ou encore sur la bourse.
Mes développements ne sont que pour moi, c'est juste un travail perso qui le sert aussi à apprendre.
Voilà pour le conteste
J'ai développé plusieurs bds sur Access, mais toujours très simple comme une encyclopédie sur les gemmes, ou encore sur la bourse.
Mes développements ne sont que pour moi, c'est juste un travail perso qui le sert aussi à apprendre.
Voilà pour le conteste
Partant d'une table nommée lgtb avec deux champs, ID, et lg, je suggère ceci:
créer une requête nommée lgqprevid:
ensuite, la requête suivante donne, je pense, le résultat attendu:
Il est possible de faire cela en une seule requête, mais c'est beaucoup moins clair:
créer une requête nommée lgqprevid:
SELECT t1.ID, t1.lg, max(t2.ID) AS previd FROM lgtb AS t1 LEFT JOIN lgtb AS t2 ON t2.ID < t1.ID GROUP BY t1.ID, t1.lg;
ensuite, la requête suivante donne, je pense, le résultat attendu:
SELECT q.lg as lg, q.lg - t.lg as ecart FROM lgqprevid as q left JOIN lgtb as t ON t.ID = q.previd;
Il est possible de faire cela en une seule requête, mais c'est beaucoup moins clair:
SELECT q.lg AS lg, q.lg - t.lg AS ecart FROM (SELECT t1.ID, t1.lg, max(t2.ID) AS previd FROM lgtb AS t1 LEFT JOIN lgtb AS t2 ON t2.ID < t1.ID GROUP BY t1.ID, t1.lg) AS q LEFT JOIN lgtb AS t ON t.ID = q.previd;
Bonjour,
Merci beaucoup pour la réponse et désolé pour ma réponse tardive.
Bref, je viens d'essayer d'appliquer la seconde solution (tout en 1) car je n'ai pas compris comment gérer la première solution.
J'ai créé une requête avec la table lgtb, puis j'ai sélectionné "SQL direct" et ai fait un copier/coller de la seconde solution. J'ai enregistré sous "lgqprevid"
Quand je lance la requête, cela ouvre une fenêtre "Sélectionner la source de données"
Alors, j'ai l'impression que je n'ai pas fait ce qu'il faut, ou il faut !!!!
Merci d'avance
Merci beaucoup pour la réponse et désolé pour ma réponse tardive.
Bref, je viens d'essayer d'appliquer la seconde solution (tout en 1) car je n'ai pas compris comment gérer la première solution.
J'ai créé une requête avec la table lgtb, puis j'ai sélectionné "SQL direct" et ai fait un copier/coller de la seconde solution. J'ai enregistré sous "lgqprevid"
Quand je lance la requête, cela ouvre une fenêtre "Sélectionner la source de données"
Alors, j'ai l'impression que je n'ai pas fait ce qu'il faut, ou il faut !!!!
Merci d'avance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci beaucoup,
En effet, je ne passais pas par le bon endroit !!!!!
Par contre l'ai ajouté un champ "Date" dans la table et dans la requête (bien sur).
J'ai testé avec uniquement 3 lignes.
Cependant, la requête n'affiche pas les bonnes dates.
Pas date sur la première ligne (ID 1)
La ligne 2 (ID 2) affiche la date de la première ligne
et la ligne 3 (ID 3) affiche la date de la ligne 2

Bref, il applique à tous les champs le décalage finalement demandé par le script.
J'ai alors créé une seconde requête reprenant ID, lg et date de la table et "ecart" de lgqprevid.
Là je me retrouve avec les 3 lignes, mais x3 (voir ci-dessous

Merci bien
En effet, je ne passais pas par le bon endroit !!!!!
Par contre l'ai ajouté un champ "Date" dans la table et dans la requête (bien sur).
J'ai testé avec uniquement 3 lignes.
Cependant, la requête n'affiche pas les bonnes dates.
Pas date sur la première ligne (ID 1)
La ligne 2 (ID 2) affiche la date de la première ligne
et la ligne 3 (ID 3) affiche la date de la ligne 2

Bref, il applique à tous les champs le décalage finalement demandé par le script.
J'ai alors créé une seconde requête reprenant ID, lg et date de la table et "ecart" de lgqprevid.
Là je me retrouve avec les 3 lignes, mais x3 (voir ci-dessous

Merci bien
donc cela fonctionne comme tu as demandé au départ.
si tu as modifié la requête suggérée, il est utile de nous montrer le code source de la requête modifiée.
tu as écrit que tu faisais cela pour apprendre. qu'essaies-tu d'apprendre?
tu n'apprendras certainement pas à utiliser Access en recopiant des suggestions.
si tu as modifié la requête suggérée, il est utile de nous montrer le code source de la requête modifiée.
tu as écrit que tu faisais cela pour apprendre. qu'essaies-tu d'apprendre?
tu n'apprendras certainement pas à utiliser Access en recopiant des suggestions.
Oui, j'apprends beaucoup.
Avant de chercher de l'aide j'essaie par moi-même en cherchant les codes à utiliser de-ci de-là.
Chaque "développement" que je fais est différent, mais il y a toujours des choses que je récupère d'applications précédentes et que j'essaie d'adapter et c'est pas toujours facile.
Encore merci pour ton aide !!!!
Avant de chercher de l'aide j'essaie par moi-même en cherchant les codes à utiliser de-ci de-là.
Chaque "développement" que je fais est différent, mais il y a toujours des choses que je récupère d'applications précédentes et que j'essaie d'adapter et c'est pas toujours facile.
Encore merci pour ton aide !!!!
Salut,
il faut faire attention car Access ne renvoie pas d'ordre dans une requête si rien n'est spécifié.
Deux requêtes identiques sur une même table peuvent amener des résultats avec un ordre totalement différent quand bien même on n'aurait ajouté qu'une seule ligne.
Donc là, il faut absolument un ordre quelconque, ce serait sûrement l'horodatage...
il faut faire attention car Access ne renvoie pas d'ordre dans une requête si rien n'est spécifié.
Deux requêtes identiques sur une même table peuvent amener des résultats avec un ordre totalement différent quand bien même on n'aurait ajouté qu'une seule ligne.
Donc là, il faut absolument un ordre quelconque, ce serait sûrement l'horodatage...
Oui, peut-être, je ne sais pas.
Mes connaissances sont trop limitées pour apporter la moindre affirmation.
Merci
Mes connaissances sont trop limitées pour apporter la moindre affirmation.
Merci
J'ai réussi pour que les dates soient correctement attachées aux ID des lg.
Après avoir recopier le script dans la requête en mode SQL.
Je suis retourné dans la présentation classique des requêtes et j'ai ajouté la table lg puis le champ ID pour contrôle et c'est OK.
Merci beaucoup pour votre aide :))
Après avoir recopier le script dans la requête en mode SQL.
Je suis retourné dans la présentation classique des requêtes et j'ai ajouté la table lg puis le champ ID pour contrôle et c'est OK.
Merci beaucoup pour votre aide :))