OVH Cloud OVH Cloud

calcul dynamique entre 2 enrgistrements

1 réponse
Avatar
rg
bonjour,
je gére des engins de manutention avec les relevés des compteurs horaires

A partir d'une table "tbl compteur"
Les champs
NuGSM, le numéro de l'engin
HC le releve mensuel des heures
Date la date du relevé

Ex
NuGSM HC Date
1 100 01/01/05
1 200 01/02/05
1 450 01/03/05
2 35 01/01/05
2 100 01/02/05
2 250 01/03/05
etc..
Je calcule le nombre d'heure de marche entre 2 releves avec la requete
suivant

SELECT [tbl Compteurs].nuGSM, [tbl Compteurs].DâteRelevé, [tbl
Compteurs].HC, Nz([HC])-DMax("HC","tbl Compteurs","nuGSM=" & [nuGSM] & " AND
[DâteRelevé]<" & Format([DâteRelevé],"\#mm-dd-yyyy\#")) AS Hcalc
FROM [tbl Compteurs]
ORDER BY [tbl Compteurs].nuGSM, [tbl Compteurs].DâteRelevé;

qui me donne le nombre d'heure entre 2 releves
cela marche : mais il arrive que l'on change un compteur à la suite d'une
panne
donc ce compteur démarre à zero , et le résultat du calcul passe en negatif.

Ex
NuGSM HC date
1 100 01/01/05
1 0 01/02/05
1 10 01/03/05

le résultat est négatig donc faux
si vous avez une idée pour résoudre ce probleme
d'avance merci

rené

1 réponse

Avatar
Bonjour,
je pense qu'il faudra revoir la structure de la base qui devrait plutôt ressembler à :

tblReleves
====== NuGSM
NoCompteur

ValInitiale
DateRelevé
HC

tblEngins
====== NuGSM
NoCompteur
Valide oui/non
ValInitiale


tu cumuleras les écarts sur le compteur valide de la tblReleves + la valeur de départ du
compteur valide pour l'engiun correspondant dans la tblEngins

ps : la valeur initiale pourra se mettre à jour automatiquement à ajout de compteur valide :
requête mise à jour met l'ancien compteur non valide
requete ajout met le nouveau compteur valide + fait la somme de tout le passif

à+
--
Arnaud
-----------------------------------
http://users.skynet.be/mpfa/
-----------------------------------
"rg" a écrit dans le message de news:

| bonjour,
| je gére des engins de manutention avec les relevés des compteurs horaires
|
| A partir d'une table "tbl compteur"
| Les champs
| NuGSM, le numéro de l'engin
| HC le releve mensuel des heures
| Date la date du relevé
|
| Ex
| NuGSM HC Date
| 1 100 01/01/05
| 1 200 01/02/05
| 1 450 01/03/05
| 2 35 01/01/05
| 2 100 01/02/05
| 2 250 01/03/05
| etc..
| Je calcule le nombre d'heure de marche entre 2 releves avec la requete
| suivant
|
| SELECT [tbl Compteurs].nuGSM, [tbl Compteurs].DâteRelevé, [tbl
| Compteurs].HC, Nz([HC])-DMax("HC","tbl Compteurs","nuGSM=" & [nuGSM] & " AND
| [DâteRelevé]<" & Format([DâteRelevé],"#mm-dd-yyyy#")) AS Hcalc
| FROM [tbl Compteurs]
| ORDER BY [tbl Compteurs].nuGSM, [tbl Compteurs].DâteRelevé;
|
| qui me donne le nombre d'heure entre 2 releves
| cela marche : mais il arrive que l'on change un compteur à la suite d'une
| panne
| donc ce compteur démarre à zero , et le résultat du calcul passe en negatif.
|
| Ex
| NuGSM HC date
| 1 100 01/01/05
| 1 0 01/02/05
| 1 10 01/03/05
|
| le résultat est négatig donc faux
| si vous avez une idée pour résoudre ce probleme
| d'avance merci
|
| rené
|
|