n° 219
Novembre 2017
Dicembre 13, 2017, 01:49:49 *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizia:
 
   Indice   Linux Windows Techassistance Gameassistance videogame hardware Aiuto Ricerca Agenda Downloads Accedi Registrati  


* Messaggi recenti
Messaggi recenti
Sondaggio
Domanda: come posso modificare la struttura di una tabella del database?
tramite sql - 2 (100%)
tramite php - 0 (0%)
Totale votanti: 2

Pagine: [1]   Vai giù
  Stampa  
Autore Discussione: modificare tabella del database  (Letto 4222 volte)
0 utenti e 1 Utente non registrato stanno visualizzando questa discussione.
andreamarsala
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 4


Mostra profilo
« inserita:: Marzo 04, 2013, 05:34:38 »

Ciao a tutti,
Nel mio database ho una tebella fatta in questo modo:

Causa Provincia1 Provincia2 Provincia3 ... ProvinciaN
causa1  ....           ....          ...                .....
causa2  ...            ...             ....             ....

e così per moltissimi records. Nei puntini vi sono valori numerici che indicano la mortalità in quella provincia per quella causa.
Poichè i campi di questa tabella sono troppi, uno per ogni provincia, volevo modificarla ottenendo una tabella finale del tipo:

causa    provincia  num_decessi
causa1  provincia1    ...
causa2  provincia1    ...

e così per tutte le cause e, per ogni causa, tutte le province.
Spero di essermi espresso bene.
Qualcuno può indicarmi uno script che mi modifichi in questo senso la mia taballa?
grazie
Registrato
sspintux
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 4


Mostra profilo
« Risposta #1 inserita:: Marzo 10, 2013, 01:27:50 »

Ciao,
non conosco granché  mysql , ma penso tu possa prendere
spunto da questo script (realizzato per MsSql) e che non dovrebbe
discostarsi troppo da quello per mysql;

...male che vada puoi considerarlo uno pseudo codice da adattare al tuo dbms.

Codice:

-- carico qualche dato di prova
create table Tab (Causa int , provincia1 int ,provincia2 int)

insert into Tab (Causa,provincia1,provincia2) values (1,1,0)
insert into Tab (Causa,provincia1,provincia2) values (2,0,2)
insert into Tab (Causa,provincia1,provincia2) values (3,3,3)

-- tabella delle provincie
create table tbTemp (Num int,Provincia char(2))
insert into tbTemp(Num,Provincia) values(1,'P1')
insert into tbTemp(Num,Provincia) values(2,'P2')

-- creo la tabella normalizzata con i dati: N.B. occorre aggiungere a posteriori PK e FK
select
Causa as IDCausa,
tbTemp.Provincia as Provincia,
case tbTemp.Num
 when 1 then tab.provincia1
 when 2 then tab.provincia2
end as  NumDec
into TabNorm
from Tab cross join tbTemp
order by Causa,Provincia

-- ToDo : qui puoi aggiungere le DDL per crearti PK e FK e quant'altro ti serve

-- vedo il risultato
select * from TabNorm


HTH

Registrato

Volevamo cambiare il mondo! ... peccato che abbiamo perso lo scontrino
DEV-01
Full Member
***

Karma: +11/-23
Scollegato Scollegato

Messaggi: 472

Me.Shift ^(n)


Mostra profilo E-mail
« Risposta #2 inserita:: Marzo 10, 2013, 08:58:49 »

Ciao,
per il tuo problema ti consiglio lo statement "alter table" che ti consente di modificare le tabelle.

Prima però fai una tabella da parte con id e descrizione_causa e una con id e nome_provincia.
Nella tabella che andrai a modificare inserirai entrambi gli id (scelti in base alle esigenze) e il numero dei decessi relativi.
Registrato

01000100 01100101 01110110 00101101 00110000 00110001
Pagine: [1]   Vai su
  Stampa  
 
Vai a:  

Copyright © 2017 Edizioni Master SpA. p.iva : 02105820787

Tutti i diritti di proprietà letteraria e artistica riservati. - Privacy



powered by Simple Machines