Михаил Ливач, да, я чуть позже увидел ошибку в своей логике.
Реализовал похожую логику (чтобы был одинаковый item_id) - все получилось, "лесенки" нет.
Обыграл как номер строки в отчете, т.к. мне она пригодится позже.
Поле id так и оставил, т.к. оно тоже нужно для дальнейшей обработки.
Да, исходную таблицу можно трансформировать.
Кроме того, в исходную таблицу уже добавил поле id как автоинкрементное.
По результатам запроса у меня получилось следующее:
Насколько я понимаю, чтобы привести данную результирующую таблицу к виду, который я указывал как желательный, нужно либо уже при помощи кода (PHP) привести в соответствие, либо в SQL запросе использовать переменные для имитации номеров строк и затем объединять по номерам строк.
Кроме того, указанные в значения в столбце item сильно упрощенный пример - там может быть любое значение с regex вида: /[0-9A-Za-z_-]+/.
Поэтому ваш ответ наиболее близко подходит к тому результату, который требуется получить.
Однако если строк в базе достаточно много (например, несколько тысяч), то формирование такого отчета начинает заметно тормозить - у меня примерно полминуты (а то и больше) уходило на формирование.
Все это усложняется тем, что затем еще надо либо разбить по страницам и выдать нужную, либо выгрузить в Excel весь отчет.
Похоже на то, что нужно скомпонованные данные по каждому подразделению сохранять в какую-либо таблицу СУБД и уже оттуда делать выборку при запросе отчета.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
Реализовал похожую логику (чтобы был одинаковый item_id) - все получилось, "лесенки" нет.
Обыграл как номер строки в отчете, т.к. мне она пригодится позже.
Поле id так и оставил, т.к. оно тоже нужно для дальнейшей обработки.
В любом случае спасибо за подробное объяснение!