Bonjour,

J'ai dans ma table des champs qui concernce un même objet mais avec des dates différentes. En faites j'aimerais récupérer la ligne avec la date la plus proche. Je sais que y a déjà des questions comme celle-ci qui ont déjà été posées mais je n'ai pas réussi à faire ma requête avec les différentes réponses que j'ai vu.

En faite ma requête me renvoi toujours la même date avec cette requête:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
SELECT mat.num_parc, type_interne_materiel, nom_marque, serie_materiel, statut_mouvement, prix_achat_materiel, statut_materiel, nom_client, date_debut_mouvement, date_fin_mouvement
FROM Materiel mat
INNER JOIN Marque mar
ON mat.num_marque = mar.num_marque
LEFT JOIN Mouvement mou
ON mat.num_parc = mou.num_parc
LEFT JOIN Client cli
ON mou.num_client = cli.num_client
WHERE serie_materiel = 354154
AND rownum <= 1
ORDER BY date_debut_mouvement DESC;
Pour moi je pense que le rownum doit être fait aprés la ORDER BY, donc j'ai essayé avec une sous-requête comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
SELECT mat.num_parc, type_interne_materiel, nom_marque, serie_materiel, statut_mouvement, prix_achat_materiel, statut_materiel, nom_client, date_debut_mouvement, date_fin_mouvement
FROM Materiel mat
INNER JOIN Marque mar
ON mat.num_marque = mar.num_marque
LEFT JOIN Mouvement mou
ON mat.num_parc = mou.num_parc
LEFT JOIN Client cli
ON mou.num_client = cli.num_client
WHERE serie_materiel = 354154
AND date_debut_mouvement = (SELECT date_debut_mouvement,rownum FROM mouvement WHERE num_parc = 3 AND rownum <= 1 ORDER BY date_debut_mouvement DESC)
AND rownum <= 1;
Mais la non plus ça ne fonctionna pas.

J'ai même testé la requête :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
SELECT date_debut_mouvement,rownum FROM mouvement WHERE num_parc = 3 rownum <= 2 ORDER BY date_debut_mouvement DESC
mais là il ne me ressort rien du tout, alors que la ligne que je veux à bien le rownum 2.

Auriez vous une idée du souci?

Par avance merci