View Single Post
Old 25-05-2005, 10:52   #1
Giupin
Member
 
Iscritto dal: Nov 2004
Città: Erice
Messaggi: 61
query con access2000: errore progettazione?

Ho queste tabelle così relazionate:

Cittadini ############# Nascite ###################
------------- ######## ---------- ##################
| idcittadino..|####|--- 1 | idnascita |#################
| nome.........|####|####|data.......|#################
| cognome....|####|####|idcomune |oo---|#######Comuni
| idnascita....|1----- ####----------- ###|#####-------------
| idresidenza..|oo-----###############|------1| idcomune |
| flaganag.....| ####| ####################| |
-------------- ####|################|----1| descrizione |
##############|#### Residenza ####| -------------
##############|##### -----------###|
##############----1 |idresidenza |###|
################## |idcomune |1---|
################## -------------

cittadini - nascite 1 a 1 tramite idnascita
cittadini - residenza molti a uno tramite idresidenza
nascite - comuni molti a uno tramite idcomune
residenza - comuni molti a uno tramite idcomune

vorrei ottenere per ogni cittadino nato ad una certa data sia la descrizione del comune di nascita che quello di residenza
alla data prescelta mi corrispondono 4 cittadini ma la query che faccio mi restituisce solo 2 record
la query è questa:

SELECT Cittadini.nome, Cittadini.cognome, Nascite.datanascita,
Comuni.descrizione AS comnas, Comuni.descrizione AS comres
FROM Residenza INNER JOIN (Comuni
INNER JOIN (Cittadini
INNER JOIN Nascite ON Cittadini.idnascita = Nascite.idnascita)
ON Comuni.idcomune = Nascite.idcomune)
ON (Residenza.idcomune = Comuni.idcomune) AND (Residenza.idresidenza = Cittadini.idresidenza)
WHERE (((Nascite.datanascita)=#1/1/1900#) AND ((Cittadini.flaganag)=True));

è sbagliata la query o il db è progettato male?
grazie

Ultima modifica di Giupin : 25-05-2005 alle 11:12.
Giupin è offline   Rispondi citando il messaggio o parte di esso