Итак ... невозможно выполнить этот stmt на большой таблице:
SET SESSION group_concat_max_len =20000;
SET @sql = NULL;
SELECT GROUP_CONCAT(DISTINCT CONCAT( 'MAX(IF(datapracy = "', datapracy, '" , liczbagodzin, NULL)) AS "', datapracy, '"' ) ) INTO @sql FROM STYCZEN2020PF1;
SET @sql = CONCAT("create view STYCZEN2020PF2 as SELECT nowakolumna, ", @sql, " FROM STYCZEN2020PF1 GROUP BY nowakolumna");
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
Сначала нам нужно создать представление месяца:
Create or replace view STYCZEN2020PF1 AS
Select t2.
nowakolumna , t1.datapracy, sum(t1.liczbagodzin) as liczbagodzin from wp_wpdatatable_5 as t2, wp_wpdatatable_1_1 as
t1 where t2.
wdt_ID = t1.
imieinazwiskopracownika AND t1.datapracy BETWEEN '2020-01-01' AND '2020-01-31' group by t1.datapracy, t2.nowakolumna HAVING COUNT(*)
И после создания второго сводного представления из первого stmt. Это решение. В конце мы должны выбрать * из вида.
Большое спасибо за помощь.