|
[SQL-SERVER] Query ricrosiva con
Ciao a tutti ragazzi.
ANZITUTTO VI CHIEDO SCUSA MA HO SBAGLIATO IL TITOLO PREMENDO INVIO INVOLONTARIAMENTE
VOLEVO SCRIVERE: [SQL-SERVER] Query ricorsiva con Date Chiusura
Parto subito con un esempio per spiegarvi cosa intendo realizzare.
Ho una tabella cosi strutturata:
Nome Istituto Conto DataInserimento IDGRP Riferimento
A B C 01/01/2010 1 XX
A B C 01/01/2010 2 XX
A B C 02/01/2010 7 XX
A B C 03/01/2010 1 XX
F G H 02/01/2010 5 XX
L M N 01/01/2010 5 XX
L M N 02/01/2010 5 XX
L M N 02/01/2010 8 XX
Vorrei realizzare qualcosa del genere:
Nome Istituto Conto DataInserimento IDGRP Riferimento
A B C 01/01/2010 1 01/01/2010
A B C 01/01/2010 2 02/01/2010
A B C 02/01/2010 7 03/01/2010
A B C 03/01/2010 1 LAST
F G H 02/01/2010 5 LAST
L M N 31/12/2009 5 01/01/2010
L M N 01/01/2010 5 02/01/2010
L M N 02/01/2010 5 02/01/2010
L M N 02/01/2010 8 LAST
In altre parole vorrei "marchiare" con un flag, in tal caso indicato con "LAST", il record piu recente con Nome, Istituo e Conto come parte in comune, facendo attenzione che nel caso in cui siano presenti due record uguali con stessa data (nell'esempio gli ultimi due record), ad essere contraddistinto con il flag "LAST" dovrebbe essere quello con IDGRP maggiore.
Tutti gli altri record invece devono essere riempiti con la data di Inserimento del record che li SUCCEDE e con DATA_INSERIMENTO PIU VICINA a quello da flaggare. Va fatta quindi attenzione a casi come il quart'ultimo record dell'esempio, che conterrā come Riferimento la data di inserimento del record con data Inserimento 01/01/2010, e non per esempio quello del 02/01/2010.
Grazie mille a tutti coloro i quali sapranno aiutarmi.
__________________
My PC:Intel Core Duo 2180/Dissipatore Zalman 9500 Led/Asus P5K/2x1GB GEIL Ultra pc6400 800mhz 4-4-4-12/Chieftec Matrix gray/Ali Lc Power 550 watt/Ati 1950 PRO 512Mb di ram ddr3/1 Hd Western Digital 300 gb 7200rpm SATA2+1 HD Samsung Spinpoint 250 GB Sata2/Asus 2232Bw/Pioneer +/-R 16X DL BLACK LightScribe
Ultima modifica di MAURIZIO81 : 11-04-2011 alle 22:09.
|