Newsgroup: it.comp.appl.access
Titolo: Problema con query...

Ho un problema con un DB di edifici che ho creato per una mia amica che si sta laureando in architettura.
Essenzialmente il DB e' composto da 2 tabelle: [Edificio] e [Rilievo Colore]:
- [Edificio] contiene informazioni relative ad un edificio
- [Rilievo Colore] e' in relazione 1->molti con [Edificio] e contiene informazioni sui colori della facciata suddivisi in varie zone. 
Ogni record di [Rilievo Colore] e' composto da 2 campi: "Zona" e "Colore" piu' ID per la relazione. Ad ogni edificio, a seconda del tipo, sono associate piu' zone della facciata con il relativo colore. 
Per esempio un dato contenuto nel DB potrebbe essere:
"Edificio X --> base bianco, muri rosso, terrazzi giallo" dove "base bianco, muri rosso, terrazzi giallo" sono i record relativi alle zone della facciata in [Rilievo Colore].
 
Adesso mi e' stato chiesto di creare una query che riesca a calcolare le "combinazioni di colore piu' ricorrenti", ossia possa rispondere ad una domanda del tipo "quanti sono gli edifici con base bianco, i muri rosso ed i terrazzi giallo?" (NOTA: le zone non sono importanti).
In pratica la query dovrebbe creare una tabella che ha come righe gli ID degli edifici e come campi i colori specificati. 
Per esempio, se il contenuto di [Rilievo Colore] fosse questo:
 ID | Zona     | Colore 
====|==========|========
 01 | base     | bianco 
 01 | terrazzi | giallo 
 01 | muri     | rosso  
----|----------|--------
 02 | base     | ocra   
 02 | muri     | verde  
----|----------|--------
 03 | muri     | bianco
la query dovrebbe generare una tabella simile a questa:
 ID | Colore1 | Colore2 | Colore3
====|=========|=========|=========
 01 | bianco  | giallo  | rosso
 02 | ocra    | verde   | 
 03 | bianco  |         |
Io c'ho gia' provato in mille modi ma non ho ancora trovato una soluzione, spero che qualcuno sia piu' bravo di me :o( 
Avete qualche idea su come risolvere questo problema?
Grazie
------------------------------------------------------------
--== Sent via Deja.com ==--
http://www.deja.com/
-- 
Posted from [62.11.89.7] by way of 
mail15.bigmailbox.com
 [209.132.220.46] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio
news:2001022007...@mail15.bigmailbox.com...

Fermo restando che come intestazione delle colonne penso che dovresti avere
non Colore1, Colore2, Colore3 ecc. , ma Zona1, Zona2, Zona3 ecc., io lo
farei con una query a campi incrociati basata sulla tabella Rilievo Colore e
che adopera come ascissa il campo ID, come ordinate il campo Zona e come
valore il campo colore.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 Roberto
ciao
merlinO

 ha scritto nel messaggio
news:24Ak6.56287$Uj1.5...@twister2.tin.it...

Sempre che io non abbia capito male, tu hai detto che la query che stavi
cercando di realizzare ti serviva ad effettuare una ricerca: hai pertanto la
necessità di qualificare i colori, cosa che io faccio mettendo tutti i
colori della base nella prima colonna, quelli dei muri nella seconda, quelli
dei terrazzi nella terza e così via. Così facendo, con una banalissima query
di selezione, realizzeresti la tua ricerca.
Se realizzi un recordset strutturato come hai indicato nel tuo esempio (cosa
possibilissima aprendo un recordset in lettura sulla tabella Rilievo Colore
ed uno in output su una tabella temporanea) come fai poi a capire che il
colore bianco del primo record riguarda la base, mentre il colore bianco del
terzo record riguarda i muri, ma ambedue i colori sono contenuti nello
stesso campo?
Puoi invece adottare un'altra soluzione che non prevede di creare alcuna
query per la ricerca; puoi crearti dinamicamente una stringa criterio che
poi adopererai come filtro o clausola WHERE nell'apertura della maschera
(basata sulla tabella Edificio) che ti visualizzerà il risultato della
ricerca. E' sicuramente più laboriosa da realizzare e bisogna conoscere
benino VBA, ma certamente è molto più elegante.


 Roberto
grazie mille e ciao!
merlinO


--
