Query

stellacometa
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!! :wink:

Risposte
codino75
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 >.......

stellacometa
SQL non l'abbiamo ancora affrontato..
C'è una funzione in Access che restituisce la data odierna: Date()

codino75
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

stellacometa
Non riesco a calcolare l'età dell'Utente..

Grazie dell'aiuto

codino75
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

stellacometa
Ti ringrazio..ma potresti essere piu preciso perchè non riesco proprio a venirne a galla!

codino75
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

codino75
[img][/img]
questa e' l'immagine della visualizz. struttura della query

stellacometa
Grazie codino dell'aiuto!! Molto gentile..

codino75
di niente.
mi dai la partita iva per la fattura?

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.