Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Intervallo data in Access

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Intervallo data in Access

Postdi fabetwice » 03/07/14 16:41

Buona sera a tutti.
Grazie in anticipo per l'aiuto che vorrete darmi. Vi premetto che non sono espertissimo di access.

Ho creato un db per gestire un evento dove i partecipanti dormono in un hotel.
La direzione dell' hotel ha riservato un quantitativo di camere per le tre notti dell'evento.
Ogni partecipante compila on-line un form di registrazione e deve inserire la data di arrivo e la data di partenza dall'hotel.
Ho fatto due tabelle: una chiamata "general list" che raccoglie le registrazioni e una chiamata "allottment" dove ho inserito il numero delle camere disponibili per ciascuna notte, ora: come faccio a creare un query di controllo sul numero delle camere che mi rimangono man mano che le perone si registrano calcolata sulla base del giorno di arrivo e di partenza dei partecipanti (campi data/ora)?
Grazie e spero di essermi spiegato.
fabetwice
Newbie
 
Post: 3
Iscritto il: 03/07/14 16:24

Sponsor
 

Postdi archimede » 03/07/14 17:49

creare un query di controllo sul numero delle camere che mi rimangono
Che rimangono QUANDO? In uno specifico giorno?
Codice: Seleziona tutto
SELECT count(*)
  FROM "general list"
 WHERE #01/08/2014# BETWEEN DateValue(DataInizioPrenotazione) AND DateValue(DataFinePrenotazione);
Così ottieni quante stanze hai già prenotato per il primo agosto (esatta sintassi della data da verificare, non ho Access ora) e, per differenza, quante te ne rimangono prenotabili.

HTH.

Alessandro

PS: forse così
Codice: Seleziona tutto
SELECT a.data, a.prenotabili,
       (SELECT count(*)
          FROM "general list" AS g
         WHERE DateValue(a.data) BETWEEN DateValue(g.DataInizioPrenotazione) AND DateValue(g.DataFinePrenotazione)) AS Prenotate
  FROM allotment AS a;
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

Re: Intervallo data in Access

Postdi fabetwice » 04/07/14 10:44

Innanzi tutto grazie della risposta!
Ho provato in tutti e due i modi ma mi da errore di sintassi. Per essere più chiaro: rispondo ad Archimede si mi occorre sapere quante ne rimangono per ogni specifico giorno dove ho un quantitativo camere prenotato in modo che se stanno per finire l'hotel se ne accorge e aumenta il numero

per semplificare di seguito metto i campi precisi delle due tabelle

tabella "general list"
IDpartecipante
nome
cognome
data arrivo
data partenza

tabella allottment
IDallottment
data arrivo
nr camere disponibili

la query di controllo dovrebbe tenere conto delle camere prenotate in base all'arrivo e alla partenza e scalare la camera dal quantitativo di quelle bloccate

Grazie del vostro aiuto

Fabrizio
fabetwice
Newbie
 
Post: 3
Iscritto il: 03/07/14 16:24

Postdi archimede » 04/07/14 16:06

fabetwice ha scritto:mi da errore di sintassi.
Presumo che tu abbia messo i nomi di campi corretti, vero?
Codice: Seleziona tutto
SELECT a."data arrivo", a."nr camere disponibili",
       (SELECT count(*)
          FROM "general list" AS g
         WHERE DateValue(a."data arrivo") BETWEEN DateValue(g."data arrivo") AND DateValue(g."data partenza")) AS Prenotate
  FROM allotment AS a;
fabetwice ha scritto:la query di controllo dovrebbe tenere conto delle camere prenotate in base all'arrivo e alla partenza e scalare la camera dal quantitativo di quelle bloccate
Non sono certo di aver compreso questa frase... spero che la query sopra sia sufficiente.

Alessandro

PS: mettere spazi, caratteri accentati e altre amenità nei nomi degli oggetti è una pratica che ti raccomando di evitare; usa solo A-Z e _.
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

Re: Intervallo data in Access

Postdi fabetwice » 04/07/14 16:53

Alessandro, innanzi tutto grazie ancora della risposta e dei consigli!
Credo che per aiutarti di debba descrivere come ho strutturato il db

tabella "general"
IDpartecipante
nome
cognome
data arrivo
data partenza

tabella "allottment"
IDallottment
data arrivo
nr camere prenotate (qui ho immesso il numero delle camere prenotate con l'hotel per ciascuna data di arrivo)

ho messo in relazione il campo data arrivo nelle due tabelle

la query di controllo dovrebbe indicarmi quante camere sono ancora disponibili per ciascuna data di arrivo calcolandole dall' intervallo tra data di arrivo e data di partenza che ogni partecipante immette nel form.

Per spiegarmi ancora meglio: mettiamo che il 25/09/2014 e il 26/09/2014 ho fermato 20 camere per ciascuna notte. Ora nella registrazione un partecipante inserisce data di arrivo 24/09/2014 e data di partenza 27/09/2014 mentre un altro partecipante data di arrivo 25/09/2014 e data di partenza 27/09/2014. La query dovrebbe far risultare sulla data 24 (-1), sul 25 (18), sul 26 (18), sul 27 (-2) considerando che 0 il valore delle camere disponibili fuori da quelle prenotate.

Spero di essere stato chiaro e scusa ma sono un principiante.
Grazie del tuo aiuto

Fabrizio
fabetwice
Newbie
 
Post: 3
Iscritto il: 03/07/14 16:24

Postdi archimede » 04/07/14 17:03

Ma l'ultima query l'hai provata?

PS: ma esattamente cosa scrivi in allottment? Perché "data arrivo" e non "data"? Dovrai avere un record per OGNI giorno che vuoi controllare, no? Ergo non capisco il senso della relazione su questo campo.
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova


Torna a Applicazioni Office Windows


Topic correlati a "Intervallo data in Access":


Chi c’è in linea

Visitano il forum: Nessuno e 15 ospiti