Du måste UNPIVOT
din data. MySQL har ingen inbyggd funktion för att göra det så du måste använda flera frågor.
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
kolumnen här kan orsaka problem. Beroende på hur du har definierat det. Om det är automatiskt genererat kan du ta bort det från INSERT och låta det genereras automatiskt. Eftersom du kommer att ha rader för alla månader med samma ID
, du måste hantera det scenariot.