imieinazwiskopracownika, budowa, rodzaj pracy, liczba godzin, data pracy
Chcę zbudować zapytanie do tej bazy aby powstała tabela przestawna. Mam coś takiego:
SET @sql = NULL; SELECT GROUP_CONCAT(DISTINCT CONCAT( 'MAX(IF(datapracy = ''', datapracy, ''', liczbagodzin, NULL)) AS "', datapracy,'"' ) ) INTO @sql FROM wp_wpdatatable_1_1 WHERE datapracy BETWEEN "2020-01-01" AND "2020-01-31"; SET @sql = CONCAT("SELECT imieinazwiskopracownika, ", @sql, " FROM wp_wpdatatable_1_1 WHERE budowa = 'Lodowisko' GROUP BY imieinazwiskopracownika"); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
I to działa bez zarzutu na lokalnym komputerze z xampp - powstaje tabela której potrzebuję. Gdy używam tego na serwerze (hosting) pojawia się błąd:
Zapytanie SQL: PREPARE stmt FROM @sql MySQL zwrócił komunikat: Dokumentacja #1064 - Something is wrong in your syntax obok 'FROM wp_wpdatatable_1_1 WHERE budowa = 'Lodowisko' GROUP BY imieinazwiskopracown' w linii 1
Nie mam pojęcia jak to poprawić, żeby zadziałało na hostingu. Proszę o pomoc.
Jeszcze dodatkowe pytanie - jak utworzyć widok z tego zapytania?
EDIT:
Okazało się, że problem leży w:
]SHOW VARIABLES LIKE '%group_concat_max_len%'; +----------------------+-------+ | Variable_name | Value | +----------------------+-------+ | group_concat_max_len | 1024 | +----------------------+-------+
rozwiązaniem jest użycie:
SET SESSION group_concat_max_len =10000;
Nadal jednak utknąłem z problemem jak z tego stworzyć widok mysql. Proszę o pomoc.