Tempo fa, prima di partire per l'MVP Summit 2008, proposi un quiz sulla risoluzione delle problematiche temporali:
http://community.ugiss.org/blogs/dmauri/archive/2008/04/09/un-quiz-prima-di-partire-think-set-oriented.aspx
La soluzione non è poi stata più postata...non certo perchè ne me sono dimenticato 
Dopo il summit ho avuto modo di passare una settimana con l'amico Itzik, all'evento che abbiamo tenuto a Vienna, e ovviamente ho proposto anche a lui il quiz. Gli è piaciuto molto e mi ha quindi chiesto l'autorizzazione per utilizzarlo per la sua rubrica su SQL Magazine. Detto: fatto! (anche se con i tempi tipici dell'editoria), ed ecco che su questo numero (Ottobre 2008) della rivista potete trovare quiz e soluzione:
http://www.sqlmag.com/Article/ArticleID/99874/sql_server_99874.html
Questo quiz su dati temporali è una evoluzione della situazione già vista e rappresenta una sfida non da poco. Vi invito in primis a risolve il problema da soli, e solo successivamente verificare la soluzione proposta da me e da Itzik: questo genere di quiz ci aiuta ad "aprire la mente" alle soluzioni set-based grazie alle quali possiamo raggiungere risultati altrimenti impossibili, il tutto applicando semplicemente la logica :-).
Sottolineo per l'ennesiva volta che questo è quello che mi piace del modello relazionale. Una volta trovato l'algortimo logico-matematico che funziona sulla carta, è sufficiente riproporlo in linguaggio SQL et voilà, problema risolto! Chissa che LINQ apra la strada a questo genere di approcio anche alla programmazione ad oggetti. Io lo spero proprio, sarebbe un importantissimo passo avanti.
L'articolo è consultabile solo dagli abbonati, per tutti coloro che non sono abbonati a SQL Magazine, il mese prossimo pubblichero un articolo sul sito di UGISS in merito alla cosa, in modo da rendere la soluzione di pubblico dominio.