Witam. Posiadam bazę danych z kolumnami:
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:
[SQL] pobierz, plaintext
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.
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.