|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : décembre 2007 Messages : 30 ![]() |
Bonjour
Je souhaite sélectionner le dernier enregistrement qui précéde le cas ou pour un ID prof avait une classe égale à "prepa" ( la classe avant qu'on lui affecte la classe prépa) Ex: ID Prof Classe Date Prof1 Seconde 01/09/2009 Prof1 Premiere 01/09/2010 Prof1 Bac 01/01/2011 Prof1 Prepa 01/02/2011 Prof1 Seconde 01/03/2011 résultat: Prof Bac 01/01/2011 Dans oracle, il y a les solutions lead/lag mais dan sql server, avez vous une solution a une telle question ? merci d'avance |
|
|
00
|
|
|
#2 | ||
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 723 ![]() |
Bonjour,
En utilisant la fonction ROW_NUMBER() vous devriez vous en sortir. Par exemple : Code :
|
||
|
00
|
|
|
#3 | ||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Bonjour,
Une autre solution, qui pourra etre meilleure ou moins bonne en fonction de vos données et de vos index : Code SQL :
|
||
|
|
00
|
|
|
#4 | ||
|
Invité régulier
![]() Inscription : décembre 2007 Messages : 30 ![]() |
J ai du mal à exécuter cette requête car je dispose de quatre jointures.
Ci-dessous le code sql généré quand je liste les trois champs: IdProf, Classe et DateFin Code :
|
||
|
|
00
|
|
|
#5 | ||
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 667 ![]() |
Bonjour,
Vous remarquerez que l'alias T_Classe de la tale Classe est inutile, puisqu'il n'est ni dans les prédicats de jointure, ni dans la liste des colonnes du SELECT. Donc on peut réécrire la requête comme suit, à la norme, avec la CTE Code :
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
||
|
00
|
|
|
#6 |
|
Invité régulier
![]() Inscription : décembre 2007 Messages : 30 ![]() |
merci
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com