SQL. Как переформировать строки в столбцы?
Для подобных вещей есть PIVOT и UNPIVOT
Но поскольку количество столбцов динамическое, то в чистом виде они так не умеют, поэтому ту часть запроса, где перечень столбцов, я бы формировал динамически (PHP, C#, T-SQL и т д... короче, что используете помимо чистых запросов)

https://www.sqlshack.com/dynamic-pivot-tables-in-s...

PS А вообще неплохо бы в теги добавить название БД: MSSQL, MYSQL, Oracle и т д
Вот здесь описано как это можно сделать, начиная со слов: "But what happens if you don’t know the dates ahead of time...".