Newsgroup: it.comp.lang.visual-basic
Titolo: SQL: Raggruppare più colonne in un'unica tabella

Salve, volevo chiedervi consiglio per una query un pò particolare
necessaria per un report.
Ho una tabella chiamata [T_CLIENTI]
------------------------------
|ID | Sesso | Nome | Cognome |
------------------------------
|   |       |      |         | 
|                            |  
Quello che voglio ottenere è una tabella con 'almeno' tre colonne, per
esempio:
----------------------------------
| Cliente1 | Cliente2 | Cliente3 |
----------------------------------
|          |          |          |
|                                |
Dove ogni colonna sia formata da [T_CLIENTI].Nome +
[T_CLIENTI].Cognome e questo ovviamente per ogni colonna, senza
duplicazioni dei clienti.
Ovviamente, se [T_CLIENTI] contiene inizialmente _tre_ tuple(record),
nella tabella di destinazione, assumendo tre colonne, voglio ottenere
_un solo_ record.
Per quanto riguarda la creazione delle voci so che si possono usare
funzioni di somma di stringhe, per tutto il resto non ho idea :-(.
P.S.: Uso Msde o se preferite Microsoft SQL server.
Mi scuso in anticipo per il crossposting.
Vincenzo.

 necessaria per un report.
A seconda del database potresti avere un qualche tool di OLP che
puo' fare cio' che chiedi, altrimenti devi scriverti un programma
o del codice nel report per creare una nuova tabella con il tracciato
che vuoi.
Davide

Usa il predicato distinct dell'istruzione select per scremare
i record facendotene tornare uno per ogni colonna in
cui lo specifichi.
--
Saluti
Andrea Moro

Il 3/14/2003 3:32 AM, Vincenzo Fabrizi scrisse:

Puoi usare l'istruzione TRANSFORM (ma non ricordo se sia definita solo 
in Access o anche in SQL server)
ciao
	maxx
-- 
NOSPAM: Rimuovere i trattini dallo username!
Cut hyphens from my username!

 ----------------------------------
salve Vincenzo,
il problema piu' grosso deriva dal fatto che sembrerebbe che il numero delle
colonne non e' definito, ma dipendente dal numero di righe nella tabella di
origine...
tra parentesi, l'istruzione TRANSFORM non esiste in T-SQL ma solo in JetSQL
comunque la cosa e' possibile e ti consiglio di guardare
http://groups.google.it/groups?as_q=crosstab&ie=ISO-8859-1&as_ugroup=microso
ft.public.sqlserver.*&lr=&hl=it
ed anche
http://groups.google.it/groups?as_q=pivot&ie=ISO-8859-1&as_ugroup=microsoft
.
public.sqlserver.*&lr=&hl=it
qualche cosa di gia' pronto ma comunque da guardare:
http://groups.google.it/groups?q=pivot+group:microsoft.public.sqlserver.*&hl
=it&lr=&ie=UTF-8&selm=3C43CFC9.D1C723D2%
40drew.edu
&rnum=1
http://groups.google.it/groups?q=pivot+group:microsoft.public.sqlserver.*&hl
=it&lr=&ie=UTF-8&selm=4A8A59F2BDCDD311BFC800508BA36AC801CF6CB7%40gecko.premi
ersi.com
&rnum=2
sul KB di MS c'e' anche
http://support.microsoft.com/default.aspx?scid=kb;en-us;175574
ma e' valido solo per rotazioni per le quali e' conosciuto a priori il
numero di colonne..
saluti
Andrea Montanari
montanar...@virgilio.it
http://www.asql.biz/DbaMgr.shtm
DbaMgr2k ver 0.2.0  -  DbaMgr ver 0.48.0
(my vb6+sql-dmo little try to provide MS MSDE 1.0 and MSDE 2000 a visual
interface)
--------- remove DMO to reply

 origine...
inoltre, anche escludendo il caso di omonimie, che passando da righe a
colonne creerebbero un bel casino, una tabella puo' avere, in linea teorica,
un numero infinito di colonne ?
ciao

 
Che dovrebbe includere anche questo esempio:
http://groups.google.com/groups?q=%22darren+brinksneader%22+crosstab&hl=en&group=microsoft.public.sqlserver.programming&rnum=3&selm=u2IJTxY2AHA.1032%40tkmsftngp03
ciao
	maxx
P.S. Polemica non personale. I link troncati obbligano a noiosissimi 
copia-incolla. Escludendo il makeashorterlink et similia, e' proprio 
cosi' terribile includere il link su una sola riga?


 un numero infinito di colonne ?
salve,
se non ricordo male il massimo e' di 1024 colonne per tabella.....
