Trouver les premières et les dernières dates de certains enregistrements d'une table à l'aide de SQL
J'ai une table (en MS SQL 2005) avec une sélection de dates. Je veux être en mesure d'appliquer une OÙ la déclaration pour le retour d'un groupe d'entre eux, et ensuite de retour à quelle date est la plus ancienne d'une colonne et que l'on est le dernier à partir d'une autre colonne. Voici un exemple de tableau:
ID StartDate EndDate Person
1 01/03/2010 03/03/2010 Paul
2 12/05/2010 22/05/2010 Steve
3 04/03/2101 08/03/2010 Paul
Donc je veux retourner tous les enregistrements où Personne = 'Paul'. Mais de retour à quelque chose comme (la plus ancienne ) StartDate = 01/03/2010 (à partir de l'ID d'enregistrement 1) et (plus tard) EndDate = 08/03/2010 (à partir de l'ID d'enregistrement 3).
Merci d'avance
vous pourriez construire un chèque que votre date de début ne peut pas être postérieure à la date de fin. (ligne 3)
Ne vous inquiétez pas, c'était une faute de frappe et la validation se fait sur l'entrée de données. Merci.
Ne vous inquiétez pas, c'était une faute de frappe et la validation se fait sur l'entrée de données. Merci.
OriginalL'auteur tonyyeb | 2010-03-25
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de la
min
etmax
des fonctions d'agrégation, par exemple, un cas très simple:Vous avez tous l'habitude de la puissance de SQL, donc la sélection d'une sous-requête est disponible.
OriginalL'auteur Richard
Qu'il serait bien d'utiliser un
group by
. Donc, Si vous aimez toutes les personnes de votre résultat, et vous laissez de côté la clause where, vous ne seriez pas obtenir des données erronées:ou
ou
OriginalL'auteur Whakkee