Disponibilità date

di il
8 risposte

Disponibilità date

Buon giorno,

il mio limitato cervello non mi permette di risolvere il seguente problema:

vorrei creare un applicativo per la gestione del noleggio di veicoli. Vorrei semplicemente far si che quando un veicolo sia già stato prenotato per un periodo (parliamo di giorni e non ore o frazioni) esso risulti non disponibile.

Non riesco proprio a capire che tipo di approccio devo avere

8 Risposte

  • Re: Disponibilità date

    Scusami ma mi sembra banale. Perché non ci riesci?
  • Re: Disponibilità date

    Dipende da come hai memorizzato le prenotazioni...
    Se hai un atabella con campo DAL-AL... basta una Query che legge tutti i vecoli con prenotazioni esterne al Giorno/Periodo che ti interessa.
    Identificando con [DAL-AL] i periodi di Tabella e con [pDAL-pAL] il periodo di Prenotazione dovrai verificare nella Query che pDAL>[AL] AND pAL<[DAL]
    Non ho messo UGUALE nel confronto in quanto la sovraposizione tempo non sia fattibile.
    
    SELECT * FROM TblPrenotazioni
    WHERE [pDAL]>[TblPrenotazioni.AL] AND [pAL]<[TblPrenotazioni.DAL]
    Con questa otterrai tutti gli IDVeicolo, campo presente nella TblPrenotazioni, che non interferiscono con le Date di Prenotazione.
  • Re: Disponibilità date

    Come sempre vi ringrazio per il tempo che mi dedicate.

    Continua a non essermi chiaro il procedimento Alex. Per il momento non ho ancora impostato nulla ma pensavo a tre tabelle come segue:

    tblClienti
    IDCliente
    Nome
    ...e altri dettagli

    tblVeicoli
    IDVeicolo
    Marca
    Modello
    ...e altri dettagli

    tblPrenotazioni
    IDVeicolo
    IDCliente
    DataInizioNoleggio (pDAL)
    DataFineNoleggio (pAL)

    Non mi è chiaro l’impiego di una quarta tabella con i campi DAL e AL
  • Re: Disponibilità date

    Non hai proprio capito...
    Quelli che ho chiamato pDAL e pAL sono i PARAMETRI per la ricerca... che prenderai da delle textbox ...non esiste nessuna 4° tabella.
  • Re: Disponibilità date

    Ecco!

    Scusami Alex però se comincio ad usare il programma per la pima volta come fa la query
    SELECT * FROM TblPrenotazioni
    WHERE [pDAL]>[TblPrenotazioni.AL] AND [pAL]<[TblPrenotazioni.DAL]
    a restituirmi degli IDVeicolo se la tabella è vuota ?
  • Re: Disponibilità date

    Beh, in quel caso non ti restituirà nulla. Ma che domanda è, scusa?
  • Re: Disponibilità date

    Rimango anch'io abbastanza basito....!
    Ma la cosa in realtà è più banale di quanto pensi... perchè dovresti eseguire SEMPRE una query differenziale tra il Parco auto e quelli disponibili...!
    Quindi farai una cosa simile
    
    SELECT + FROM tblVeicoli 
    WHERE IDVeicolo NOT IN 
               (SELECT IDVeicolo FROM TblPrenotazioni
                WHERE [pDAL]<[TblPrenotazioni.AL] AND [pAL]>[TblPrenotazioni.DAL])
    P.S. ho invertito i confronti ovviamente.
    In questo modo otterrai tutti i Veicoli disponibili, anche se è tutto vuoto.
  • Re: Disponibilità date

    Oregon e Alex chiedo venia!

    vi avevo anticipato che il mio cervello non ci arrivava (soprattutto quando si parla di lavorare con le date).

    Non avevo affatto pensato al fatto che, ovviamente, le tabelle hanno una relazione e quindi anche se la tblPrenotazioni è vuota, gli IDVeicoli vengono presi dalla tblVeicoli.

    Adesso proverò a popolare una casella combinata con gli IDVeicoli risultanti dalla query

    Grazie sempre!
Devi accedere o registrarti per scrivere nel forum
8 risposte