|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
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. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Sep 2001
Città: Lecco
Messaggi: 404
|
...secondo me è sbagliato il database...
ti consiglio 2 tabelle: - tblCittadini: idCittadino, Nome, dataNascita, idComuneNascita, idComuneResidenza - tblComuni: idComune, Nome in modo che tu puoi avere il cittadino in base a tutto quello che tiserve... ed inoltre mi sembra un pò uno spreco avere 2 tabelle di comuni?! La query che hai chiesto risulterebbe così: "SELECT tblCittadini.Nome, tblComuni.Nome AS ComuneNascita, tblComuni1.Nome AS ComuneResidenza FROM tblCittadini, tblComuni, tblComuni AS tblComuni1 WHERE tblCittadini.idComuneNascita = tblComuni.idComune AND tblCittadini.idComuneNascita = tblComuni1.idComune AND tblCittadini.dataNascita=#25/05/2005#" hola valse
__________________
Dell XPS 17 Sandy Bridge (L702x) • Kingston 128GB SSDNow V100 • Zalman ZM-NC3000U Cooler • tastiera retroilluminata |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Nov 2004
Città: Erice
Messaggi: 61
|
si però in questo modo come ricavo i dati di nascita e di residenza?
quindi mi occorrono altre due tabelle per questi dati in cui ognuna abbia l'idcomune relativo.. comunque ho risolto prendendo spunto dalla tua query quando scrivi: [quote=..tblComuni.Nome AS ComuneNascita, tblComuni1.Nome AS ComuneResidenza FROM... [/QUOTE] mentre io mettevo: "Comuni.descrizione AS comnas, Comuni.descrizione AS comres " inoltre ho legato tblcomuni solo alla nascita e tblcomuni1 solo alla residenza.. non so se è giusto fare così... ma funziona grazie |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:24.