Requete sql avec regroupement

Bonjour,

je suis débutant en sql et je voudrais sélectionner les lignes avec une étoile dans le tableau ci-dessous. En fait, c'est le dernier mouvement effectué par un id. Mais j'ai aucune idée de la façon de faire.

ID REFERENCE EMPLACEMENT DATE_MVT
1; BAIC100; 1H154; 08/10/2008 12:12:06;
*1; BAIC100; 1H1MA; 08/10/2008 12:13:51;
4; C4; H1ARH; 08/10/2008 15:24:59;
*4; C4; 1H1TK; 20/10/2008 15:48:10;
5; C4; H300; 20/10/2008 15:49:03;
5; C4; 1H1E1; 20/10/2008 15:49:28;
5; C4; 1H1PI; 23/10/2008 09:14:17;
*5; C4; 1H300; 23/10/2008 11:55:15;
*6; BAIC100; A22; 23/10/2008 11:55:51;
*7; B40M; 1H1MA; 23/10/2008 11:57:23;

merci de votre aide
Configuration: Windows XP
Safari 525.13

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. Y'a un problème, tu ne dois pas utiliser le caractère * dans ta table car celà correspond à quelquechose dans SQL.
    1. Le caractère * c'est juste pour marquer la ligne que je veux récupérer.
      Je sais que c'est un caractère générique.

      Merci
      1. Ok alors pourquoi tu as plusieurs ID de la même valeur ? L'ID doit être unique est là tu as plusieurs ID avec la même valeur !!
    2. L'ID est unique dans sa représentation puisqu'il s'agit de cartons.
      S'il y a plusieurs ID c'est parce que c'est la table des mouvements. Donc un ID peut suivre un chemin au sein d'un entrepot et donc apparaître plusieurs fois dans ce fichier.
      1. Hello,

        Tu devrais avoir ta reponse avec ceci:

        SELECT Table1.ID, Table1.Reference, Table1.Emplacement, Table1.Date_Mvt
        FROM Table1
        WHERE (((Table1.Date_Mvt) In (SELECT Last(Table1.Date_Mvt) AS LastOfDate_Mvt
        FROM Table1
        GROUP BY Table1.ID;
        )));

        1. Merci beaucoup pour la requete.
          Malheureusement, elle ne peut pas fonctionner car last n'existe pas sous interbase 6.5

          Je fouine toujours pour trouver une parade.