Bonjour,

Dans le cadre d'un projet, je dois créer une vue qui va accéder à plusieurs table pour y récupérer plusieurs informations. Je cherche donc à faire une requête qui va récupérer les enregistrements qui ont la date la plus récente, jusque là, rien de bien compliqué.

Ma table se compose comme ceci

Id | IdIndi | DateDeb | DateFin
__|______|_________|_______
1 |PPOP |2013-01-02 | 2013-31-02
2 |PPOP |2013-01-12 | 2013-31-12
3 |CCMP |2013-01-02 | 2013-31-02
4 |CCMP |2013-01-04 | 2013-31-04
5 |CCMP |2013-01-05 | 2013-31-05
6 |RTP |2013-01-02 | 2013-31-02

Mais, ma Vue accède également à des données de d'autres tables..
J'aimerais donc là sortir :

2 |PPOP |2013-01-12 | 2013-31-12
5 |CCMP |2013-01-05 | 2013-31-05
6 |RTP |2013-01-02 | 2013-31-02

Mais, dans mon cas, j'ai le droit à plus de résultat que prévu.

Ma Vue pour le moment est :
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 DISTINCT 
                      TOP (100) PERCENT dbo.Mesure.Resultat_MES, dbo.Mesure.QuantiteNum_MES, dbo.Mesure.QuantiteDenum_MES, dbo.InfoMesure.IdIndicateur_IM, 
                      dbo.InfoMesure.DateDeb_IM, dbo.NiveauDonnee.NomNiveau_NIV, dbo.ValeurCible.Socle_VC, dbo.ValeurCible.Point_VC, dbo.ValeurCible.Objectif_VC, 
                      dbo.InfoMesure.DateFin_IM
FROM         (SELECT     MAX(DateFin_IM) AS DateRecente, IdIndicateur_IM
                       FROM          dbo.InfoMesure AS InfoMesure_1
                       GROUP BY IdIndicateur_IM) AS TestDate INNER JOIN
                      dbo.InfoMesure ON TestDate.DateRecente = dbo.InfoMesure.DateFin_IM INNER JOIN
                      dbo.Mesure ON dbo.Mesure.IdInfoMesure_MES = dbo.InfoMesure.IdInfoMesure_IM INNER JOIN
                      dbo.NiveauDonnee ON dbo.InfoMesure.IdNiveau_IM = dbo.NiveauDonnee.IdNiveau_NIV INNER JOIN
                      dbo.InfoValeurCible ON dbo.NiveauDonnee.IdNiveau_NIV = dbo.InfoValeurCible.IdNiveau_IV INNER JOIN
                      dbo.ValeurCible ON dbo.InfoValeurCible.IdInfoValeurCible_IV = dbo.ValeurCible.IdInfoValeurCible_VC INNER JOIN
                      dbo.Indicateur ON dbo.InfoMesure.IdIndicateur_IM = dbo.Indicateur.IdIndicateur_IND AND dbo.InfoValeurCible.IdIndicateur_IV = dbo.Indicateur.IdIndicateur_IND
ORDER BY dbo.InfoMesure.IdIndicateur_IM
Et ensuite, pour les plus aguéris d'entre vous, j'aimerais également sortir avec cette vue la DateRécente-1, pour faire ensuite un comparatif d'évolutions des informations récupérés. Dans l'exemple si dessus, sortir donc :

1 |PPOP |2013-01-02 | 2013-31-02
2 |PPOP |2013-01-12 | 2013-31-12
4 |CCMP |2013-01-04 | 2013-31-04
5 |CCMP |2013-01-05 | 2013-31-05
6 |RTP |2013-01-02 | 2013-31-02


Si quelqu'un peut m'aider, ou au besoin que je donne plus d'informations.
Cordialement, Chewby.