Bonjour à tous

J'ai une requête assez compliqué à faire, ca fait 2 jours que j'y suis dessus et je commence à perdre patience donc je viens demander de l'aide

Je schématise car j'ai des tables avec des 40aines de champ !

Table T1:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
ID_T1 | Nom
------|------
  1   | Pomme
  2   | Poire
Table T2:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
ID_T2 | T1 |   Debut    |    Fin
------|----|------------|----------
  1   | 1  | 2005/01/10 | 2005/02/20
  2   | 1  | 2005/02/23 | 2005/03/10
  3   | 1  | 2005/03/13 | 2005/04/10
Voilà c'est très schématisé, mon problème : (enfin j'espère que ca ne vient que de là ).

Je fais une opération dans mon SELECT sur la date la plus récente qui se trouve dans T2 pour la Pomme comme ca (j'ajoute 2 jours à la date Debut et je vérifie qu'elle est plus petite ou égale à la date du jour) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
CONVERT(varchar, DATEADD(d, 4, CONVERT(datetime, T2.Debut, 121)), 111) <= CONVERT(varchar, GETDATE(), 111)
En fait, je voudrais effectuer seulement cette opération sur la date la plus récente, les autres dates, c'est juste de l'historique car évidemment les autres dates moins récentes sont affichées dans ma requête vu qu'elles vérifient la condition.

Si j'utilise TOP 1 (pour SQL Server), ca va me donner seulement 1 seul résultat mais moi je voudrais 1 seul résultat pour la Pomme car j'ai bcp de noms dans T1.

C'est vraiment pas facile à expliquer, si vous ne comprenez pas, dites le

Merci de votre aide