2017-07-15 2 views
0

J'essaie de récupérer la date la plus récente pour les rendez-vous. J'ai utilisé ROW_NUM_DESC pour récupérer la date la plus récente. Donc, la clause where est affichée comme ROW_NUM_DESC = 1.Deuxième à la date la plus récente avec date dupliquée

Mon dilemme est que la colonne où je tire la date a des duplications de dates. Donc, ROW_NUM_DESC = 2 n'est pas une représentation précise de la deuxième valeur la plus récente.

Ne peut pas utiliser les éléments suivants avec des raisons:

  1. DISTINCT dans l'instruction select. Raison: il existe un autre champ - nom de département. Je veux une liste de noms de département par dates. GROUP BY- nécessite de lister toutes les colonnes de l'instruction select comme le nom du département. Raison: Encore une fois, je veux une liste de tous les noms de département par dates.

  2. DATEPART - requiert un entier pour NUMBER dans la syntaxe. Puis-je convertir un entier à partir d'un nombre d'heures supérieur à la date indiquée dans ROW_NUM_DESC?

Toute aide est appréciée !!!!

Répondre

0

Vous pouvez utiliser DENSE_RANK avec partition et filtrer par 2 comme ci-dessous:

Select * from 
    (Select *, RowN = dense_rank() over(partition by idcolumn order by yourDate desc from Yourtable) a 
Where a.RowN = 2 

ici Partition par idcolumn vous pouvez utiliser si nécessaire pour obtenir top 2e nomination récente pour idcolumn individuelle ou d'une autre colonne ou supprimer

+0

salut @ Kannan Kandasamy! Merci pour la réponse. mes excuses si vous avez répondu à cette partie de la question. Mon problème est qu'il y a des dates en double dans la colonne. Donc par exemple; 1 = 07/12/17, 2 = 07/12/17, 3 = 07/09/17. Donc, le filtrer sur RowN = 2 retournera également la date la plus récente. – SQLLEARNER

+0

la première ligne de texte devrait maintenant lire * "Vous pouvez utiliser DENSE_RANK avec la partition" * –

+0

Oui, c'est encore un problème si deux enregistrements obtiennent la même seconde date, cela dépend de l'exigence de l'OP, alors OP peut utiliser le top 1 si c'est exigence –