Gestione dei movimenti in un lasso di tempo con una stored procedure

mercoledì 25 giugno 2008 - 14.53

trinity Profilo | Guru

Salve ragazzi,
in sql server 2005 ho creato la seguente tabella:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Ora vi scrivo dei dati in modo tale che potete aiutarmi:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Questi dati servono per elaborare delle stampe mensili degli arrivati e dei presenti.
Per ottenere gli arrivati è semplice ma per ottenere il valore dei presenti bisogna effettuare la differenza di giorni tra la data di arrivo e la sua relativa data di partenza.

Allora ipotiziamo questo scenario:

Io ho inserito 10 arrivati di Como e 10 arrivati di Roma, tutti nel mese di Giugno.
Uno di questi record ossia quello di Come ha la partenza nelle stesso mese mentre quello di Roma ha la partenza ad agosto.

Se io volessi calcolare gli arrivi e le partenze del mese di Giugno avrò questo risultato:

NAZIONE - COMUNE - DATAARRIVO - DATAPARTENZA - TOTARRIVI - PRESENZE
ITALIA COMO 09/06/2008 25/06/2008 10 160 (16 GIORNI X 10 ARRIVI)
ITALIA ROMA 10/06/2008 30/06/2008 10 200 (20 GIORNI X 10 ARRIVI)
(La statistica vuole che quando non vi è la partenza nel lasso di tempo scelto allora si deve dare l'ultimo giorno del mese ed il lo ottengo attraverso una funzione)

fino qui tutto ok

ora però nasce il problema ossia come potete vedere nelle insert io ho un record di Roma partito ad Agosto, pertanto tutto il mese di Luglio questo record è rimasto nell'albergo e quindi genera delle presenze.
Il mio problema è che in base alla struttura della mia tabella e alla natura dei dati al suo interno non riesco a fare il riporto nel mese di Luglio dell'arrivato che partirà ad agosto.

Pertanto supponiamo che io vorrei avere i dati del mese di Luglio. In teoria dovrei trovarmi in una situazione tipo la seguente:

NAZIONE - COMUNE - DATAARRIVO - DATAPARTENZA - TOTARRIVI - PRESENZE
ITALIA ROMA 01/07/2008 31/07/2008 0 300 (30 GIORNI X 10 ARRIVI)

Perchè ora il TOTARRIVI è = 0? Perchè il vero arrivo è avvenuto nel mese di Giugno e non in quello di Luglio ma per il cacolo delle presenze io ho bisogno di avere sempre una data di arrivo e pertato va messo il primo giorno del mese, visto che non c'è la vera data di partenza è stato messo l'ultimo giorno del mese.

Insomma io se scelgo di vedere i dati a Luglio dovrei farmi un riporto virtuale degli arrivi di Giugno che non hanno partenza e darci come arrivo il primo del mese ma su che base logica posso fare il riport visto che l'operatore sceglie di visualizzare i dati dal giorno X al giorno X e così facendo non si hanno realmente movimenti nel mese di Luglio.

La spiegazione è un pò particolare ma ho cercato di essere + chiaro possibile con il concetto del calcolo delle presenze.

Accetto anche consiglio su un'eventuale errore nella progettazione della tabella archivio_mov e semmai come doveva in teoria essere in base alle mie esigenze

Aiutatemi grazie
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5