Sarà una risposta LUNGA spero di non annoiarti e di esserti di aiuto
Facciamo un esempio con i dati in TABELLA
Tabella_Anagrafica: Cognome - Nome - Codice_abilitazione
Rossi - Michele - X
Rossi - Michele - Z
Verdi - Giovanni - X
Verdi - Giovanni - Y
Verdi - Mario - X
Bianchi - Mario - Y
Tabella_Abilitazioni: Codice_Abilitazione - Tipo_Abilitazione
X - monolocale
Y - bilocale
Z - trilocale
Se la domanda è quali abitazioni ha Rossi Michele la query è:
Select Cognome, Nome, Tipo_Abilitazione
From Tabella_Anagrafica LEFT JOIN Tabella_Abilitazioni ON Tabella_Anagrafica.Codice_Abilitazione = Tabella_Abilitazioni.Codice_Abilitazione
Where Cognome="Rossi" In questo caso il risultato è
Cognome - Nome - Tipo_abilitazione
Rossi - Michele - monolocale
Rossi - Michele - trilocale
Attenzione all'abbinamento COGNOME e Nome se guardi nell'esempio di dati che ho inserito ci sono due persone (per esempio 2 fratelli) Mario e -giovanni che hanno lo stesso cognome Verdi. Nel caso in cui fai i filtro solo per il cognome.
Select Cognome, Nome, Tipo_Abilitazione
From Tabella_Anagrafica LEFT JOIN Tabella_Abilitazioni ON Tabella_Anagrafica.Codice_Abilitazione = Tabella_Abilitazioni.Codice_Abilitazione
Where Cognome="Verdi" Il risultato sarà dato da
Cognome - Nome - Tipo_abilitazione
Verdi - Giovani - monolocale
Verdi - Giovanni - bilocale
Verdi - Mario - monolocale
In questo modo hai però un elenco e per avere il numero di LOCALI associati ad ogni persona devi contare i record altrimenti puoi utilizzare anche la CLAUSOLA GROUP BY. Altri esempi
Select Cognome, Nome, COUNT(Tipo_Abilitazione) as Numero_Tipo_Abitazioni
From Tabella_Anagrafica LEFT JOIN Tabella_Abilitazioni ON Tabella_Anagrafica.Codice_Abilitazione = Tabella_Abilitazioni.Codice_Abilitazione
Where Cognome="Verdi"
GROUP BY Cognome, NomeIn questo caso il risultato è
Cognome - Nome - Numero_Tipo_Abitazioni
Verdi - Giovani - 2
Verdi - Mario - 1
Se hai bisogno di altri chiarimenti fammi sapere.
Ciao
Modificato da info_DNNSERVICE il 03 febbraio 2009 00.16 -