Mysql
 sql >> Database >  >> RDS >> Mysql

UNPIVOT dati mysql su un'altra tabella

Devi UNPIVOT i tuoi dati. MySQL non ha una funzione integrata per farlo, quindi dovrai utilizzare più query.

INSERT INTO `monthlydata` (`id`, `year`, `monthName`, `stat_id`, `cat_id`, `data`) VALUES
SELECT id, year, 'January', stat_id, cat_id, January
    FROM monthly WHERE monthName = 'January'
UNION ALL 
SELECT id, year, 'February', stat_id, cat_id, February
    FROM monthly WHERE monthName = 'February'
UNION ALL 
SELECT id, year, 'March', stat_id, cat_id, March
    FROM monthly WHERE monthName = 'March'
.....

ID colonna qui potrebbe causare problemi. A seconda di come lo hai definito. Se viene generato automaticamente, puoi rimuoverlo da INSERT e lasciarlo generare automaticamente. Dal momento che avrai righe per tutti i mesi con lo stesso ID , devi gestire quello scenario.