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 :
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 :
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
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.
Partager