Requète pour calcul durée entre dates

Le
Georges
Bonjour,

Je travaille actuellement sur un fichier qui collecte l’historique des
défauts de fonctionnement d’une machine de production.
Il contient les champs suivants.

Date : jj:mm:aa hh:mm:ss
N° Défaut :
Statut: 1= Apparition défaut, 0= Acquittement
Time : valeur numérique du champ date

Date Défaut Statut Time
09/06/2009 09:59:51 111 1 39973416563
09/06/2009 10:02:31 103 1 39973418414
09/06/2009 10:02:31 111 0 39973418414
09/06/2009 10:04:05 103 0 39973419502
09/06/2009 10:04:07 105 1 39973419525
09/06/2009 10:04:41 105 0 39973419919


Mon objectif est de calculer la durée de chaque défaut. A savoir qu’un
défaut peut apparaître alors que le précédent n’est pas encore acquité.

Avec la date je saurais calculer la durée d’apparition des défauts.
Par contre, je n’arrive toujours pas malgré plusieurs essais a créer la
requète qui mette sur une même ligne ces 2 dates afin de réaliser ce calcul.

D’avance merci pour votre aide

Georges
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Fabien
Le #19583781
Georges a écrit :
Bonjour,

Je travaille actuellement sur un fichier qui collecte l’historique des
défauts de fonctionnement d’une machine de production.
Il contient les champs suivants.

Date : jj:mm:aa hh:mm:ss
N° Défaut :
Statut: 1= Apparition défaut, 0= Acquittement
Time : valeur numérique du champ date

Date Défaut Statut Time
09/06/2009 09:59:51 111 1 39973416563
09/06/2009 10:02:31 103 1 39973418414
09/06/2009 10:02:31 111 0 39973418414
09/06/2009 10:04:05 103 0 39973419502
09/06/2009 10:04:07 105 1 39973419525
09/06/2009 10:04:41 105 0 39973419919


Mon objectif est de calculer la durée de chaque défaut. A savoir qu’un
défaut peut apparaître alors que le précédent n’est pas encore acquité.

Avec la date je saurais calculer la durée d’apparition des défauts.
Par contre, je n’arrive toujours pas malgré plusieurs essais a créer la
requète qui mette sur une même ligne ces 2 dates afin de réaliser ce calcul.

D’avance merci pour votre aide

Georges




Bonjour,
Tu fais une requete avec regroupement sur le n°defaut , un Max sur Date,
Min sur date.
Et Tu réalises le calcul avec cette requete par source.
Select N°Defaut,Max (Date_defaut) as Début,Min(Date_Defaut) as Fin
from TblIncident
group by N°defaut
Ou quelquechose comme çà ;-)
@+
Georges
Le #19587511
Bonjour Fabien
Tout d'abord merci pour cette première piste.
Par contre j'ai oublié de préciser que les différents défauts pouvaient se
produire plusiers fois de suite.
J'ai essayé la première parte de ta solution mais malheureusement elle ne
marche pas dans ce cas là.

Date Défaut StatutTime
09/06/2009 09:59 111 1 39973416563
09/06/2009 10:02 103 1 39973418414
09/06/2009 10:02 111 0 39973418414
09/06/2009 10:04 103 0 39973419502
09/06/2009 10:04 105 1 39973419525
09/06/2009 10:04 105 0 39973419919
09/06/2009 10:04 111 1 39973419919
09/06/2009 10:04 111 0 39973420081
09/06/2009 10:06 103 1 39973421204
09/06/2009 10:40 103 0 39973444491

J'espère que tu as une solution.

Moi j'avais pensé faire une requète pour les évènements Début avec comme
critère "1" pour le champ statut. Une requète fin avec comme critère "0" pour
le champ statut.
Insérer dans chacune d'elle une formule qui incrémente un champ "N°ordre".
Et pour finir une requète avec les 2 précédentes avec le champ "N°ordre"
comme jointure.

Par contre je ne sais pas ecrire cette formule.

Encore merci pour ton aide
Georges







>
Bonjour,
Tu fais une requete avec regroupement sur le n°defaut , un Max sur Date,
Min sur date.
Et Tu réalises le calcul avec cette requete par source.
Select N°Defaut,Max (Date_defaut) as Début,Min(Date_Defaut) as Fin
from TblIncident
group by N°defaut
Ou quelquechose comme çà ;-)
@+



Georges
Le #19590931
Bonjour,
Cette fois tout fonctionne
J'ai donc créer une requéte "début" et une "Fin"
et 2 autres avec un code trouvé sur un site.
Pour celle "début" j'ai mis la formule suivante qui me permet d'incrémenter
un numéro par rapport à la valeur "TIME".

SELECT (SELECT COUNT (Time)
FROM R02_Debut AS LaTable_Alias2
WHERE Time < R02_Debut.Time)+1 AS Classement, R02_Debut.*,
Left([T01_DesDef],Len([T01_DesDef])-17) AS Défaut
FROM R02_Debut;

J'ai crée celle pour "Fin", et celle avec les 2 avec pour jointure le champ
"Classement"

Merci Fabien pour ton aide
Cdt
Georges



"Georges" a écrit :



Bonjour Fabien
Tout d'abord merci pour cette première piste.
Par contre j'ai oublié de préciser que les différents défauts pouvaient se
produire plusiers fois de suite.
J'ai essayé la première parte de ta solution mais malheureusement elle ne
marche pas dans ce cas là.

Date Défaut StatutTime
09/06/2009 09:59 111 1 39973416563
09/06/2009 10:02 103 1 39973418414
09/06/2009 10:02 111 0 39973418414
09/06/2009 10:04 103 0 39973419502
09/06/2009 10:04 105 1 39973419525
09/06/2009 10:04 105 0 39973419919
09/06/2009 10:04 111 1 39973419919
09/06/2009 10:04 111 0 39973420081
09/06/2009 10:06 103 1 39973421204
09/06/2009 10:40 103 0 39973444491

J'espère que tu as une solution.

Moi j'avais pensé faire une requète pour les évènements Début avec comme
critère "1" pour le champ statut. Une requète fin avec comme critère "0" pour
le champ statut.
Insérer dans chacune d'elle une formule qui incrémente un champ "N°ordre".
Et pour finir une requète avec les 2 précédentes avec le champ "N°ordre"
comme jointure.

Par contre je ne sais pas ecrire cette formule.

Encore merci pour ton aide
Georges







> >
> Bonjour,
> Tu fais une requete avec regroupement sur le n°defaut , un Max sur Date,
> Min sur date.
> Et Tu réalises le calcul avec cette requete par source.
> Select N°Defaut,Max (Date_defaut) as Début,Min(Date_Defaut) as Fin
> from TblIncident
> group by N°defaut
> Ou quelquechose comme çà ;-)
> @+
>


Fabien
Le #19591161
Georges a écrit :
Bonjour,
Cette fois tout fonctionne
J'ai donc créer une requéte "début" et une "Fin"
et 2 autres avec un code trouvé sur un site.
Pour celle "début" j'ai mis la formule suivante qui me permet d'incrémenter
un numéro par rapport à la valeur "TIME".

SELECT (SELECT COUNT (Time)
FROM R02_Debut AS LaTable_Alias2
WHERE Time < R02_Debut.Time)+1 AS Classement, R02_Debut.*,
Left([T01_DesDef],Len([T01_DesDef])-17) AS Défaut
FROM R02_Debut;

J'ai crée celle pour "Fin", et celle avec les 2 avec pour jointure le champ
"Classement"

Merci Fabien pour ton aide
Cdt
Georges



"Georges" a écrit :


Bonjour Fabien
Tout d'abord merci pour cette première piste.
Par contre j'ai oublié de préciser que les différents défauts pouvaient se
produire plusiers fois de suite.
J'ai essayé la première parte de ta solution mais malheureusement elle ne
marche pas dans ce cas là.

Date Défaut StatutTime
09/06/2009 09:59 111 1 39973416563
09/06/2009 10:02 103 1 39973418414
09/06/2009 10:02 111 0 39973418414
09/06/2009 10:04 103 0 39973419502
09/06/2009 10:04 105 1 39973419525
09/06/2009 10:04 105 0 39973419919
09/06/2009 10:04 111 1 39973419919
09/06/2009 10:04 111 0 39973420081
09/06/2009 10:06 103 1 39973421204
09/06/2009 10:40 103 0 39973444491

J'espère que tu as une solution.

Moi j'avais pensé faire une requète pour les évènements Début avec comme
critère "1" pour le champ statut. Une requète fin avec comme critère "0" pour
le champ statut.
Insérer dans chacune d'elle une formule qui incrémente un champ "N°ordre".
Et pour finir une requète avec les 2 précédentes avec le champ "N°ordre"
comme jointure.

Par contre je ne sais pas ecrire cette formule.

Encore merci pour ton aide
Georges







Bonjour,
Tu fais une requete avec regroupement sur le n°defaut , un Max sur Date,
Min sur date.
Et Tu réalises le calcul avec cette requete par source.
Select N°Defaut,Max (Date_defaut) as Début,Min(Date_Defaut) as Fin
from TblIncident
group by N°defaut
Ou quelquechose comme çà ;-)
@+







Bonjour,
Ben la meilleur solution étant celle que l'on trouve :-) Bravo et bonne
continuation
@+
Publicité
Poster une réponse
Anonyme