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

Langage SQL Discussion :

Une requête SQL!


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 23
    Points : 19
    Points
    19
    Par défaut Une requête SQL!
    Bonjour,
    Je suis sur un projet de géolocalisation (http://fr.wikipedia.org/wiki/Géolocalisation). Dans la table data (tr_imei, tr_datetime, tr_lat, tr_lng), sont stockées à chaque minute des informations de position de chaque traceur.
    J'utilisais une requête pour chaque traceur afin de recueillir sa dernière position en PHP connaissant bien sûr l'imei de chaque traceur stocké dans une autre table. Le bémol, c'est que je n'arrive pas à faire une pagination suivant que le nombre de traceurs dépasse 50, 75...
    Je voudrais maintenant exécuter une SQL pouvant m'afficher les dernières informations de position respectives pour tous les traceurs en une seule requête .
    (Le problème revient à ceci: Dans une table-association t (e1_id, e2_id, col3, col 4) issue de deux tables e1(e1_id), e2(e2_id) où les informations par exemple pour la colonne e1_id ne sont pas uniques. Comment sélectionner le maximum de chaque valeur distincte de la colonne e1_id?)
    Merci de votre contribution

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour

    Quelque chose comme ceci :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    SELECT
    	D.tr_imei,
    	D.tr_datetime,
    	D.tr_lat,
    	D.tr_lng
    FROM (
    	SELECT tr_imei, MAX(tr_datetime) AS LastDT
    	FROM data
    	GROUP BY tr_imei
    ) L --Derniere date par imei
    INNER JOIN Data D
    	ON D.tr_imei = L.tr_imei
    	AND D.tr_datetime = L.LastDT

    si elle n'existe pas déjà, placez une contrainte d'unicité sur le couple tr_imei/tr_datetime

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    ça marche nickel!
    Merci beaucoup pour votre précieuse intervention!

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

Discussions similaires

  1. Pb sur une requête SQL (de champ vide)
    Par Marion dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/07/2004, 11h12
  2. Utilisation de MAX dans une requête SQL
    Par Evil onE dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/06/2004, 18h38
  3. Récupurer via une requête SQL la valeur la plus proche
    Par yoda_style dans le forum Langage SQL
    Réponses: 9
    Dernier message: 27/04/2004, 13h52
  4. Résultat d'une requète SQL
    Par camino dans le forum Bases de données
    Réponses: 2
    Dernier message: 21/02/2004, 15h22
  5. A propos d'une requête SQL sur plusieurs tables...
    Par ylebihan dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/09/2003, 16h26

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