Каков наилучший способ обработки сводных таблиц в php / MySQL (или что-то в этом роде)
У меня есть запрос, который возвращает информацию, как показано ниже.
id eng week type sourceid userid 95304 AD 2012-01-02 Technical 744180 271332 95308 AD 2012-01-02 Non-Technical 744180 280198 96492 AD 2012-01-23 Non-Technical 1056672 283843 97998 AD 2012-01-09 Technical 1056672 284264 99608 AD 2012-01-16 Technical 1056672 283842 99680 AD 2012-01-02 Technical 1056672 284264 100781 AD 2012-01-23 Non-Technical 744180 280671
И я хочу создать отчет на PHP, который подсчитывается группами с заголовками столбцов недели. Например
week commencing: 2012-01-02 2012-01-09 2012-01-16 2012-01-23 2012-01-30 Total: 3 1 1 1 0 Technical: 2 1 1 0 0 Non-Technical: 1 0 0 1 0
Но я не уверен, с чего начать, поскольку заголовки динамичны в зависимости от того, в каком месяце будет выполняться отчет.
Я знаю, как передать данные месяца и получить все данные в PHP, но в настоящее время он выводится в одном столбце, а не в состоянии группировать и помещать его в массив.
Любая помощь ценится!
Вы можете сделать это с помощью суб-запроса, а затем произвести и агрегировать эти данные. Попробуйте что-то вроде этого:
select week, count(*) as total, sum(technical) as technical, sum(non_technical) as non_technical) from( select week, case(type) when 'Technical' then 1 else 0 END as technical, case(type) when 'Non-Technical' then 1 else 0 END as non_technical ) as data GROUP BY week