|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Jul 2011
Messaggi: 27
|
[MySQL/SQL] trasformazione di una tabella
Avrei bisogno dell'aiuto di qualcuno esperto in trasformazioni di tabelle.
Sto cercando di realizzare una stored procedure che mi consenta di effettuare la trasformazione della seguente tabella: pagina| utente ---------------------- A | 1 A | 5 A | 7 B | 1 C | 1 C | 3 ... | ... da trasformare in: utente| A | B | C | ... ------------------------------ 1 | 1 | 1 | 1 | ... 3 | 0 | 0 | 1 | ... 5 | 1 | 0 | 0 | ... 7 | 1 | 0 | 0 | ... ... ... ... ... ... I valori delle pagine sono circa 50/100 e gli utenti 1000. Quindi considerato il numero elevato di colonne non posso creare manualmente la tabella. Il risultato dovrà essere una matrice densa di 1 e 0. La colonna user si potrebbe anche eliminare, ma non è lì il mio problema visto che non riesco a riempire la tabella con gli 0/1, se non con una update per ogni colonna, ne sarebbero 50. Spero che qualcuno mi sia d'aiuto. Grazie mille. Ultima modifica di pendrel : 18-05-2014 alle 12:33. |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Mar 2008
Messaggi: 142
|
Ma è una procedura che si deve fare una tantum?
Se si una semplice soluzione è questa (pseudo linguaggio in quanto non conosco le store procedure di mysql) - for each utenteInCiclo in UTENTE for each permessoInCiclo in PERMESSO valorePresente= SELECT count(*) from TABELLA_PERMESSI update nuovatabella set permessoInCiclo=valorePresente where utente=utenteInCiclo |
|
|
|
|
|
#3 | |
|
Junior Member
Iscritto dal: Jul 2011
Messaggi: 27
|
Quote:
Sì è una tantum. Vorrei capire la procedura che mi hai proposto. Dal tuo consiglio dovrei creare la tabella manualmente e poi effettuare l'update in questo modo con i due cicli for innestati. Però non mi sono chiare le variabili che hai utilizzato, in particolare il ciclo for "permessoinciclo in PERMESSO" |
|
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Mar 2008
Messaggi: 142
|
for each permessoInCiclo in PERMESSO
o confuso il termine, stando alla tua nomenclature è pagina. Quindi sostanzialemente sto dicendo per ogni "pagina" presente in "PAGINE". |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:07.




















