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

Access Discussion :

Calcul de différence de temps sur une même colonne [AC-2003]


Sujet :

Access

  1. #1
    Membre régulier Avatar de yoshï
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 206
    Points : 88
    Points
    88
    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.

  2. #2
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    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 895
    Points : 4 325
    Points
    4 325
    Par défaut
    salut yoshï,
    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)?

  3. #3
    Membre régulier Avatar de yoshï
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 206
    Points : 88
    Points
    88
    Par défaut
    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)

  4. #4
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    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 895
    Points : 4 325
    Points
    4 325
    Par défaut
    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.

  5. #5
    Membre régulier Avatar de yoshï
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 206
    Points : 88
    Points
    88
    Par défaut
    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

  6. #6
    Membre régulier Avatar de yoshï
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 206
    Points : 88
    Points
    88
    Par défaut
    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

  7. #7
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    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 895
    Points : 4 325
    Points
    4 325
    Par défaut
    il te faut donc une requete de ce genre:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    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.


  8. #8
    Membre régulier Avatar de yoshï
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 206
    Points : 88
    Points
    88
    Par défaut
    Merci, c'est exactement ce que je voulais .

    Je vais regarder pour essayer d'intégrer la gestion d'erreur.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] ecrire dans une table nligne sur une même colonne
    Par cedill23 dans le forum VBA Access
    Réponses: 2
    Dernier message: 03/07/2009, 18h57
  2. Réponses: 6
    Dernier message: 03/07/2009, 09h32
  3. Réponses: 2
    Dernier message: 05/04/2008, 17h33
  4. [Oracle] Différence de résulats sur une même requête
    Par bakaneko dans le forum C++Builder
    Réponses: 5
    Dernier message: 02/04/2008, 16h07

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