Bonjour à tous !!

J'ai une question à vous poser !

J'ai une table comme ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
CREATE TABLE T_STATUS_CHANGE (
       CXR_ID                         INTEGER NOT NULL,
       CXRSTAT_CHANGE_DATE TIMESTAMP NOT NULL,
       CXRSTAT_STATUS          TINYINT NULL
) TYPE=INNODB;
 
ALTER TABLE T_STATUS_CHANGE ADD UNIQUE STATUS_CHANGE_IDX (CXR_ID, CXRSTAT_CHANGE_DATE);
 
CREATE INDEX IND_STATUS_CHANGE ON T_STATUS_CHANGE
(
       CXR_ID                          ,
       CXRSTAT_CHANGE_DATE
);
Déjà, sommes nous d'accord sur le fait que l'ajout d'une contrainte unique + création d'un index est inutile ? Un seul suffirait ou y'a-t-il une astuce qui m'échappe??

Bref, à part ce détail je tente d'écrire une requête :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
select s.* 
from T_STATUS_CHANGE s 
where s.cxrstat_change_date <= '2009-11-04 07:45:23.0' 
  and ( 
    s.cxr_id = 5664 
    or s.cxr_id = 5649 
    or s.cxr_id = 5668 
    or s.cxr_id = 5645 
    or s.cxr_id = 1033 
    or s.cxr_id = 1034 
    or s.cxr_id = 1049
  )
order by s.cxrstat_change_date desc, s.cxr_id
Le select * n'est là que pour l'exemple (je sais que c'est mal ^^ et qu'il faut spécifier tous les champs).

Bref cette requête me retourne bien ce que je veux MAIS je ne voudrais qu'elle me retourne qu'une seule ligne PAR s.cxr_id différent !!

En gros pour le moment elle peut me retourne un truc du style :

CXR_ID - CXRSTAT_CHANGE_DATE - CXRSTAT_STATUS
1 Date1 0
1 Date2 1
2 Date3 0
3 Date4 1

(les identifiants ne correspondent pas... c'est juste pour l'exemple )
Mais comme vous pouvez le voir, j'ai 2 lignes ou la valeur '1' pour la colonne CXR_ID apparait. J'aimerais n'avoir qu'une seule ligne par CXR_ID, auriez vous une piste à me donner, je sèche :'(

D'avance merci !!