Newsgroup: it.comp.appl.access
Titolo: Query per trovare disponibilita' macchina su calendario impegni gia' programmati

Dispongo di un archivio macchine utensili, ognuna con il suo calendario di 
disponibilita'
Ad esempio il centro1 e' disponibile il lunedi 14/01/2007 dalle ore 08.00 
alle 12.0, il lunedi 14/01/2007 dalle ore 14.00 alle 19.00, e cosi' via
Poi c'e' l'archivio degli impegni gia' presi delle macchine e quindi in 
questo archivio ci sara' indicato che la macchina centro1 e' impegnata da 
martedi 04/02/2007 dale ore 15.30 a giovedi 06/02/2007 alle ore 18.34
Bon
Come fare, con una sola query, a sapere se la macchina centro1 e' 
disponibile per un lavoro che in tutto porta via 12,5 ore ???
E' gia' da qualche tempo che ci provo da con una sola query non mi viene, 
per il fatto che le macchine non sono disponibili 24 ore al giorno ma hanno 
il proprio calendario di disponibilita, cioe' per ogni macchina c'e' una 
tabella con tante righe del tipo 'nome_macchina', 'disponibile_dal', 
'disponibile_al'
Ciao e grazie


E' possibile con 2 tabelle:
1) Impegni Macchina DataInizio e DataFine
2) ElencoMacchine
Mettendo in JOIN le 2 tabelle inserendo i Parametri alla Query trovi
le macchine libere [DAL:] [AL:]
Ovviamnte il parametro dovrai passarlo nel formato che ti serve.
PARAMETERS [DAL:] DateTime, [AL:] DateTime;
SELECT MacchinaN
FROM tblElencoMacchine
WHERE MacchinaN Not In
    (SELECT MacchinaN
     FROM tblPrenotazioni
     WHERE (
                  ([DAL:] <= DataFine)
                  AND
                  ([AL:]>= DataInizio)
                  )
    )
ORDER BY MacchinaN;
@Alex


Ti ringrazio per la risposta
Non funziona cosi, ovviamente i tentativi di base li ho gia' fatti e rifatti
Il problema sta nel fatto che ogni macchina ha un suo calendario di 
disponibilita, nel senso che ad esempio il centro1 ha disponibilita 
da_data_ora  a_data_ora e poi da altra da_data_ora ad altra a_data_ora
La query sopra indicata tratta le macchine come se fossero sempre 
disponibili e non e' cosi la realta'
Nel dettaglio ho tre tabelle
La prima e' la Macchine con campi, id_macchina e nome_macchina (naturalmente 
evidenzio solo i campi necessari alla comprensione del problema)
Poi ho la tabella Disponibilita_Macchine con campi id_macchina, da_data_ora, 
a_data_ora (ovviamente una macchina puo' avere piu' record in questa 
tabella)
Poi ho la tabella Impegni_Macchine con campi id_macchina, id_commessa, 
da_data_ora, a_data_ora (una stessa macchina, per una certa commessa, puo' 
avere solamente un record nel senso che il lavoro di questa macchina e' 
continuo nel tempo, compatibilmente con la disponibilita della macchina 
stessa)
Ciao e grazie
RobertoA

 RobertoA-
Perchè mai dovresti avere una tabella disponibilità...?
Non è sufficiente vedere quando non è impegnata per nessuna
commessa...?
Se hai vincoli di orario faranno parte della condizione Where di
esclusione...
Ripensaci bene secondo me potresti aver sbagliato qualche cosa(sempre
che tu possa
sbagliare)...
Non è che sei parente di SIMBA...?
@Alex






--------------------------------------------------
La tabella disponibilita' c'e' per indicare quando la macchina puo' 
lavorare, in che giorno, da che ora, fino a che ora
Ci sto ripensando, e per quanto riguarda le richieste non credo di sbagliare 
qualcosa nel senso che questo mi serve fare
E' ovvio che, come tutti credo, possa sbagliare pure me
Non so chi sia 'sto simba
Ciao e grazie comunque
RobertoA