2017-09-14 4 views
0

Mes données d'entrée ressemble ci-dessous:
Date Fisclyear__
2011 ______ 7/1/2010
2011 _____ 8/20/2010
2011 ______ 2/30/2011
2012 ______ 6/30/2011
2012 ______8/15/2011
2013 ______ 15/07/2013
2013 ______ 7/30/2013
comment classer des données basées sur la date groupée par année?

Je dois classer les données en fonction de la date dans l'ordre asc et regroupées par année, mon résultat devrait être comme ci-dessous

Date Fisclyear__ ______rank
2011 ______ 7/01/2010 ___ 01
2011 ______ 8/20/2010 ___ 02
2011 ______ 30/02/2011 ___ 03
2012 ______ 6/30/2011 ___ 01
2012 ______ ___ 8/15/2011 02
2013 ______ 15/07/2013 ___ 01
2013 ______ 30/07/2013 ___ 02

+0

Eh bien, qu'avez-vous essayé? – OldProgrammer

Répondre

0

Utilisez ROW_NUMBER fonction d'analyse Oracle() OVER PARTITION par année ORDERBY da te ... je suis n'a pas pu trouver la syntaxe exacte, mais il fonctionne

0

Utilisez un port variable dans une expression de la manière suivante:

v_rank = IIF(Fisclyear = v_prev_Fisclyear, v_rank + 1, 1) 
v_prev_Fisclyear = Fisclyear 

Maintenant, créez un port de sortie:

rank = v_rank