Query
Ho un Database formato dalle seguenti entità:
Libro (Titolo, Autore, Genere, Codece Libro)
Utente (Nome, ndirizzo, Nascita, Codece Utente)
Prestito (Codece Utente, Codice Libro, Inizio, Durata, Restituito)
Scaffale (Codice Scaffale, Stanza, Armadio,)
Collocazione (Codice Libro, Codice Scaffale)
Dovrei creare una query che determini il genere dei libri presi in prestito dagli utenti nella fascia di età compresa fra i 16 e 20 anni.
La query la costruisco prendendo come riferimento le entità "Prestito", "Libro" e "Utente" nelle quali esistono le relazioni: 1:N tra Libro e Prestito, 1:N tra Utente e prestito.
Mi dareste una mano a cosrtuire tale query con Access??
Grazie a tutti in anticipo!!
Libro (Titolo, Autore, Genere, Codece Libro)
Utente (Nome, ndirizzo, Nascita, Codece Utente)
Prestito (Codece Utente, Codice Libro, Inizio, Durata, Restituito)
Scaffale (Codice Scaffale, Stanza, Armadio,)
Collocazione (Codice Libro, Codice Scaffale)
Dovrei creare una query che determini il genere dei libri presi in prestito dagli utenti nella fascia di età compresa fra i 16 e 20 anni.
La query la costruisco prendendo come riferimento le entità "Prestito", "Libro" e "Utente" nelle quali esistono le relazioni: 1:N tra Libro e Prestito, 1:N tra Utente e prestito.
Mi dareste una mano a cosrtuire tale query con Access??
Grazie a tutti in anticipo!!

Risposte
in sql, utilizzabile anche in access (se non sai come chiedi), dovrebbe errere qualcosa del genere
l'unico problema che io incontro e' come si gestisce la data di oggi, ma credo superabile facilmente smanettando un po' in access con gli aiuti mentre si scrive la query( i puntini si riferiscono appunto alla parte di query riguardante questa ' annosa' questione)
select Libro.Genere
from Libro, Utente, Prestito
where Libro.Codice Libro = Prestito.Codice Libro
and
Prestito.Codice Utente = Utente.Codice Utente
and
Data_odierna - Utente.Nascita <...
and
Data_odierna - Utente.Nascita >.......
l'unico problema che io incontro e' come si gestisce la data di oggi, ma credo superabile facilmente smanettando un po' in access con gli aiuti mentre si scrive la query( i puntini si riferiscono appunto alla parte di query riguardante questa ' annosa' questione)
select Libro.Genere
from Libro, Utente, Prestito
where Libro.Codice Libro = Prestito.Codice Libro
and
Prestito.Codice Utente = Utente.Codice Utente
and
Data_odierna - Utente.Nascita <...
and
Data_odierna - Utente.Nascita >.......
SQL non l'abbiamo ancora affrontato..
C'è una funzione in Access che restituisce la data odierna: Date()
C'è una funzione in Access che restituisce la data odierna: Date()
si tratta semplicemente di fare 2 join (tra Utente e Prestito e tra Libro e Prestito )
Libro.Codice Libro = Prestito.Codice Libro
Prestito.Codice Utente = Utente.Codice Utente
e di verificare due condizioni sulla nascita dell'utente.
in particolare cosa non ti riesce?
ciao alex
Libro.Codice Libro = Prestito.Codice Libro
Prestito.Codice Utente = Utente.Codice Utente
e di verificare due condizioni sulla nascita dell'utente.
in particolare cosa non ti riesce?
ciao alex
Non riesco a calcolare l'età dell'Utente..
Grazie dell'aiuto
Grazie dell'aiuto
crea una colonna 'nascita' nella query
nella riga 'criteri' di questa colonna puoi usare la funzione:
CDate(Now())
(che restituisce l'ora odierna)
per creare il criterio che piu' ti aggrada.
n.b.:se nella cella del criterio fai clik col destro del mouse e selezioni 'genera' accedi ad un'interfaccia molto utile per scrivere i criteri
ciao alex
nella riga 'criteri' di questa colonna puoi usare la funzione:
CDate(Now())
(che restituisce l'ora odierna)
per creare il criterio che piu' ti aggrada.
n.b.:se nella cella del criterio fai clik col destro del mouse e selezioni 'genera' accedi ad un'interfaccia molto utile per scrivere i criteri
ciao alex
Ti ringrazio..ma potresti essere piu preciso perchè non riesco proprio a venirne a galla!
non riesco a caricare l'immagine dell'esempio che avevo fatto.
cmq
in buona sostanza la query si fa cosi':
crea query in visualizzazione struttura
aggiungi tutte le tabelle
nella parte inferiore della finestra di visualizzazione (struttura) della query che stai facendo c'e' una tabella
ogni colonna corrisponde ad un criterio
sulla prima riga ('campo') devi inserire l'espressione che tratterai poi nella quinta riga ('criteri')
nel mio esempio ho inserito:
Date()-[utente]![utente_data_nascita]
nella riga criteri ho inserito:
<7300 And >5840
che sono il numero di giorni che ha chi e' compreso tra 16 e 20 anni
in questo modo la query prende solo i record che soddisfano la condizione seguente:
la differenza tra la data di oggi e la data di nascita dell'utente e' compresa (in giorni) tra 5840 e 7300
le altre colonne della tabella le devi usare per fare i 2 join (2 colonne) e per mettere i campi che vuoi visualizzare (ad es. 'genere')
n.b.:il campo nascita della tabella utente deve essere dichiarato 'date' (o datetime o come diavolo si chiama insomma ci siamo capiti)
ciao
cmq
in buona sostanza la query si fa cosi':
crea query in visualizzazione struttura
aggiungi tutte le tabelle
nella parte inferiore della finestra di visualizzazione (struttura) della query che stai facendo c'e' una tabella
ogni colonna corrisponde ad un criterio
sulla prima riga ('campo') devi inserire l'espressione che tratterai poi nella quinta riga ('criteri')
nel mio esempio ho inserito:
Date()-[utente]![utente_data_nascita]
nella riga criteri ho inserito:
<7300 And >5840
che sono il numero di giorni che ha chi e' compreso tra 16 e 20 anni
in questo modo la query prende solo i record che soddisfano la condizione seguente:
la differenza tra la data di oggi e la data di nascita dell'utente e' compresa (in giorni) tra 5840 e 7300
le altre colonne della tabella le devi usare per fare i 2 join (2 colonne) e per mettere i campi che vuoi visualizzare (ad es. 'genere')
n.b.:il campo nascita della tabella utente deve essere dichiarato 'date' (o datetime o come diavolo si chiama insomma ci siamo capiti)
ciao
Grazie codino dell'aiuto!! Molto gentile..
di niente.
mi dai la partita iva per la fattura?
mi dai la partita iva per la fattura?