Salve ragazzi,
in sql server 2005 ho creato la seguente tabella:
Ora vi scrivo dei dati in modo tale che potete aiutarmi:
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