Вот частичный пример , основанный на этом вопросе . Формат basi c предназначен для каждого столбца, который вы хотите в конце, вам нужно определить еще один SUM(CASE(x))
. Этот пример в настоящее время выводит только 4 месяца, но вы можете включить его в число тех месяцев, которые вам нужны.
http://sqlfiddle.com/#! 9/678546/9 для рабочего примера.
SELECT P.`drug`,
SUM(
CASE
WHEN P.`data_month`='Jan' AND P.`data_year` = 2018
THEN P.`dispensed_packs`
ELSE 0
END
) AS '2018-01',
SUM(
CASE
WHEN P.`data_month`='Feb' AND P.`data_year` = 2018
THEN P.`dispensed_packs`
ELSE 0
END
) AS '2018-02',
SUM(
CASE
WHEN P.`data_month`='Mar' AND P.`data_year` = 2018
THEN P.`dispensed_packs`
ELSE 0
END
) AS '2018-03',
SUM(
CASE
WHEN P.`data_month`='Apr' AND P.`data_year` = 2018
THEN P.`dispensed_packs`
ELSE 0
END
) AS '2019-01'
FROM tmp_pivot_dtg P
GROUP BY P.`drug`;