Я действительно застрял в этом. Я попытался объединиться, подготовив исполняемый файл. Я очень хорошо знаю, что SQL не является языком, предназначенным для таких задач, но на данный момент целью является создание прототипа. Фактические технические реализации произойдут позже.Mysql: Отображать значения столбца под другим столбцом
Я объясню свои требования.
Существует временная таблица, в которой я храню имя, проект и функции, связанные с этим проектом. Столбцы хранят строки как:
Образец данных:
project, Tracker, resource_name, Total_Hours, date, project_counts,
'Slim', 'Feature', 'babu.balakrishnan', '39', '2016-10-22', '20'
'Slim', 'Feature', 'prasenjit.ghosh', '1.5', '2016-10-22', '2'
'Slim', 'Feature', 'shamim.akhtar', '3', '2016-10-22', '2'
'Slim', 'Support', 'babu.balakrishnan', NULL, '2016-10-22', '1'
'Slim', 'Support', 'shamim.akhtar', '3', '2016-10-22', '2'
Я хочу, чтобы выход, который будет отображаться таким образом:
babu.balakrishnan Slim 2016-10-22
Feature 20
Support 1
prasenjit.ghosh Slim
Feature 3
Я знаю, как отображать имя разработчика, название проекта и дате в одной строке, но я не могу понять, как мне перейти к отображению статуса проекта под названием проекта. Кроме того, это только для одного разработчика. Мне нужно повторить это для всех проектов, с которыми связан разработчик, а затем и для других разработчиков.
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'CASE WHEN date = ''',
date,
''' then project_counts end AS `', date, '`')
ORDER BY date) INTO @sql
FROM finance_dashboard.resource_utilization_data;
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'CASE WHEN project = ''',
project,
''' then Tracker end AS `', ' ' , '`')
ORDER BY date) INTO @sql2
FROM finance_dashboard.resource_utilization_data;
SET @sql = CONCAT('select distinct resource_name, project
,',@sql, ' from finance_dashboard.resource_utilization_data
union
select '''' ,', @sql2, '," " FROM
finance_dashboard.resource_utilization_data group by
Tracker');
выход, который я получаю:
'babu.balakrishnan', 'Slim', '20'
'prasenjit.ghosh', 'Slim', '2'
'shamim.akhtar', 'Slim', '2'
'babu.balakrishnan', 'Slim', '1'
'', 'Feature', ' '
Я хочу Feature, поддержка или независимо от статуса для этого разработчика, появится ниже тонкий, для соответствующих разработчиков.
Возможно ли это на уровне запроса? Я знаю, что необходимо использовать агрегатную функцию.
Кроме того, возможно ли связывать переменные dyamically, так что значение конкретной строки записывается ниже столбца?
Благодаря
ли число фиксированных дат, или они переменные? На первый взгляд, я бы сказал, что это то, что лучше всего будет обрабатывать на вашем уровне приложения (PHP?). –
Да. Даты не являются проблемой. SQL будет запущен для даты начала и окончания. Единственное, что мне нужно показать, это данные, которые хранятся в сводной таблице. К сожалению, на данный момент не рекомендуется использовать любой другой язык программирования. –
Ваши выборочные данные и результат не выстраиваются в линию, по крайней мере, неясно, как добраться до него. Просьба привести воспроизводимый пример. –