Newsgroup: it.comp.appl.access
Titolo: quesito SQL

Ammettiamo di avere un certo mumero X di oggetti che un certo numero N di  
persone ordina secondo un proprio criterio, assegnando ad ogni oggetto un  
punteggio non ripetibile da 1 a X. Con due tabella in relazione  
uno-a-molti si può memorizzare questa struttura di dati, però mi chiedo se  
è possibile, ricorrendo solo a SQL, produrre una tabella di N colonne e di  
X righe dove tutti i criteri di ordinamento vengono resi espliciti e  
confrontabili.
Grazie per l'attenzione.
Michele Giordano


Traducendo?
Magari fai un esempio concreto.
-- 
PBsoft di Gabriele Bertolucci
www.pbsoft.it
skype:pbsoftsolution


La sintesi è un'opinione....
Io non ho capito nulla anche se in Matematica qualche cosa ci capisco...
;-)
Non è che vuoi una Query a campi incrociati nella quale vedere per persona
gli Oggetti ordinati ed i relativi quantitativi...?
Se è così in 2 righe ho fatto un buon sunto.... e ti ho anche dato la
risposta...!
;-)
-- 
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.alessandrobaraldi.it
---------------------------------------------------------------------------

 Magari fai un esempio concreto.
D'accordo.
Ammettiamo di avere due tabelle:
CANZONI
=======
ID_canzone
titolo_canzone
PREFERENZE
==========
ID_canzone
nome_fan
punteggio_assegnato
con una relazione uno-a-molti: CANZONI.ID_canzone = PREFERENZE.ID_canzone  
possono registrare in questa struttura di dati la graduatoria personale di  
un numero di fans non definito a priori. Ammettiamo, per semplicità, che  
le canzoni siano 10 e i fans 3: allora PREFERENZE contiene 30 record.
La domanda è: solo con SQL è possibile scrivere una query che produca una  
tabella virtuale di questo tipo:
QUERY
=====
titolo_canzone
voto_fan_1
voto_fan_2
voto_fan_3
che ha quattro colonne (in questo esempio) e 10 righe?
Michele Giordano

 che ha quattro colonne (in questo esempio) e 10 righe?
Si č possibile.
Devi utilizzare una query a campi incrociati.


 risposta...!
Mi sa che hai capito proprio bene.


 Devi utilizzare una query a campi incrociati.
Dagli esempi che ho visto mi sembra di capire che le query a campi  
incrociati producono tabelle con un numero di colonne fisso. Io mi domando  
se è possibile creare tabelle con un numero di colonne che dipende dal  
numero di record di una determinata tabella in relazione con la tabella  
principale.
L'esempio che ho trovato sul sito comune di Access (2.8 Creare una query a  
campi incrociati con due campi valore, due totali di riga dei due campi  
valore), per esempio, mi sembra che confermi questa mia idea.
Michele Giordano

 principale.
No, non è possibile.


 No, non è possibile.
Perchè non è possibile....?
Forse ho capito male ma se struttura la Q in modo che sulle X ci siano i
prodotti...
el caso in cui vengano inseriti nuovi prodotti dovrebbero apparire le
relative colonne.
Chiaramente non sono dipendenti dal NUMERO di RECORDS ma dalla TIPOLOGIA
del campo associato alle X.
Boh... magari mi perdo pezzi.


> Boh... magari mi perdo pezzi.
Faccio un esempio più dettagliato.
Queste tabelle:
CANZONI
===================================
ID_C	TITOLO
1	Alfa
2	Beta
3	Gamma
PREFERENZE
===================================
ID_P	FAN	ID_C
1	Gino	1
2	Gino	2
3	Gino	3
3	Piero	1
2	Piero	2
1	Piero	3
dovrebbero produrre:
HIT
===================================
TITOLO	GINO	PIERO
Alfa	1	3
Beta	2	2
Gamma	3	1
e questo credo che si possa fare. Ma se la tabella PREFERENZE diventa
PREFERENZE
===================================
ID_P	FAN	ID_C
1	Gino	1
2	Gino	2
3	Gino	3
3	Piero	1
2	Piero	2
1	Piero	3
2	Mara	1
1	Mara	2
3	Mara	3
La *stessa* query HIT può generare questa nuova tabella?
HIT
===================================
TITOLO	GINO	PIERO	MARA
Alfa	1	3	2
Beta	2	2	1
Gamma	3	1	3



A mio parere SI.... è quello che sostenevo, però la cosa migliore è PROVARE
che peraltro
non costa nulla...! ;-)


Il campo ID_P di PREFERENZE, naturalmente, non è un ID ma è il campo dove  
si registra la graduatoria.
MG