Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access
Access Forum d'entraide sur Microsoft Access. Avant de poster -> La F.A.Q Access
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/11/2011, 11h35   #1
Membre du Club
 
Avatar de yoshï
 
Inscription : mai 2003
Messages : 158
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 158
Points : 41
Points : 41
Par défaut Calcul de différence de temps sur une même colonne

Bonjour,
Je suis débutant dans l'utilisation d'access et je rencontre un problème.
J'ai une table qui représente des détections de véhicules à l'aide de caméra de tracking. Cette table est constituée des champs (idVehicule, idCamera,heureDetection). La table contient donc plusieurs fois un même véhicule identifié par différentes caméras.

Je souhaiterai calculer le temps de trajet des véhicules entre 2 caméras. Il me faudrait donc décomposer la requête comme suit:

groupement A = select idVehicule, heureDetection where idCamera=cameraSortie

groupement B = select idVehicule, heureDetection where idCamera!=cameraSortie

select B.idVehicule, A.heureDetection- B.heureDetection where A.idVehicule=B.idVehicule

ça fait un petit moment que je n'ai pas touché à une BDD et je ne connais rien au mode assisté de création de requête sous Access. Est ce que vous savez comment je peux réaliser une telle requête sous Access?

Merci beaucoup pour votre aide.
yoshï est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2011, 13h54   #2
Expert Confirmé
 
Avatar de vodiem
 
Homme Diem VO
Vivre
Inscription : avril 2006
Messages : 2 644
Détails du profil
Informations personnelles :
Nom : Homme Diem VO
Âge : 40
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Vivre
Secteur : Conseil

Informations forums :
Inscription : avril 2006
Messages : 2 644
Points : 3 895
Points : 3 895
salut yoshï,
Citation:
Je souhaiterai calculer le temps de trajet des véhicules entre 2 caméras
pour être sûr:
tu veux calculer les délais, pour le même véhicule, entre deux prise d'une même caméra ou les délais successif entre chaque capture (enregistrement)?
vodiem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2011, 14h09   #3
Membre du Club
 
Avatar de yoshï
 
Inscription : mai 2003
Messages : 158
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 158
Points : 41
Points : 41
Citation:
Envoyé par vodiem Voir le message
salut yoshï,

pour être sûr:
tu veux calculer les délais, pour le même véhicule, entre deux prise d'une même caméra ou les délais successif entre chaque capture (enregistrement)?

Je veux calculer le délais pour un même véhicule entre 2 caméras différentes (j'ai l'heure de détection du véhicule pour chacune des caméras). En gros je veux connaître le temps mis par un véhicule pour aller d'un point A (caméra 1) à un point B (caméra de sortie)
yoshï est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2011, 14h41   #4
Expert Confirmé
 
Avatar de vodiem
 
Homme Diem VO
Vivre
Inscription : avril 2006
Messages : 2 644
Détails du profil
Informations personnelles :
Nom : Homme Diem VO
Âge : 40
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Vivre
Secteur : Conseil

Informations forums :
Inscription : avril 2006
Messages : 2 644
Points : 3 895
Points : 3 895
donc toujours entre l'idCameraB et l'idCameraA? il n'y a pas d'autres caméras?
je précise car le sql est différent selon le contexte.
vodiem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2011, 15h09   #5
Membre du Club
 
Avatar de yoshï
 
Inscription : mai 2003
Messages : 158
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 158
Points : 41
Points : 41
ok, c'est vrai que je ne suis pas assez précis dans la description du problème.

Alors en gros il y a un péage avec une caméra par voie puis 800 m plus loin une caméra de sortiede zone. Entre les caméras de péage et la caméra de sortie il n'y a aucune autre caméra. Un véhicule est forcément enregistré 2 fois dans la base (sauf erreur de lecture d'une caméra, auquel cas le nb d'enregistrement est < 2). En principe il y a un enregistrement correspondant à la détection en voie de péage et un enregistrement pour la caméra de sortie. Je veux le temps entre ces 2 détections pour avoir la durée de trajet.

Je pense que la requête doit ressembler à quelque chose dans le genre:

//Détection véhicule par caméra en péage
groupement B = select idVehicule, heureDetection where idCamera!=cameraSortie

//Détection véhicule par caméra de sortie
groupement A = select idVehicule, heureDetection where idCamera=cameraSortie


//intervalle de temps entre les 2 détections= temps de trajet
select B.idVehicule, A.heureDetection- B.heureDetection where A.idVehicule=B.idVehicule
yoshï est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2011, 15h36   #6
Membre du Club
 
Avatar de yoshï
 
Inscription : mai 2003
Messages : 158
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 158
Points : 41
Points : 41
Citation:
Envoyé par vodiem Voir le message
donc toujours entre l'idCameraB et l'idCameraA? il n'y a pas d'autres caméras?
je précise car le sql est différent selon le contexte.
Non il n'y a pas de caméra entre les caméras de péage (idCamera différent de caméra de sortie) et la caméra de sortie
yoshï est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2011, 16h42   #7
Expert Confirmé
 
Avatar de vodiem
 
Homme Diem VO
Vivre
Inscription : avril 2006
Messages : 2 644
Détails du profil
Informations personnelles :
Nom : Homme Diem VO
Âge : 40
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Vivre
Secteur : Conseil

Informations forums :
Inscription : avril 2006
Messages : 2 644
Points : 3 895
Points : 3 895
il te faut donc une requete de ce genre:
Code SQL :
1
2
3
4
5
6
SELECT
   t1.idVehicule,
   Format(heureDetection-(SELECT max(heureDetection) FROM detections AS t2 WHERE t1.idVehicule=t2.idVehicule AND idCamera="A" AND t2.heureDetection<t1.heureDetection),"h:n:s") AS Duree
FROM detections AS t1
WHERE t1.[idCamera]="B"
ORDER BY t1.heureDetection;
dans ce cas les durées ne sont calculées que s'il y a eu une sortie. s'il y a sortie sans entrée il y aura erreur sur la valeur, il faudrait pour cela compléter ce SQL pour intégrer les erreurs possibles.

vodiem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2011, 16h54   #8
Membre du Club
 
Avatar de yoshï
 
Inscription : mai 2003
Messages : 158
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 158
Points : 41
Points : 41
Merci, c'est exactement ce que je voulais .

Je vais regarder pour essayer d'intégrer la gestion d'erreur.
yoshï est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h47.


 
 
 
 
Partenaires

Hébergement Web