mysql — сводная таблица с датой, категориями переменных и значениями суммы в php sql

Я хотел бы создать сводную таблицу расходов из SQL select в PHP, в которой даты будут строками, категории будут столбцами данных, а сумма всех расходов на дату определенного дня, а категория будет данными таблицы.

Необработанные данные хранятся в таблице SQL:

ID - DATE - CATEGORY - CAT. NAME - PRICE
01 - 1/01 - 1        - CAR       - 5
02 - 1/01 - 2        - FOOD      - 10
03 - 1/02 - 2        - FOOD      - 10
04 - 1/02 - 2        - FOOD      - 10
05 - 1/02 - 4        - HOUSE     - 50
06 - 1/02 - 1        - CAR       - 5
07 - 1/03 - 1        - CAR       - 5
08 - 1/03 - 2        - FOOD      - 10
09 - 1/03 - 2        - FOOD      - 10
10 - 1/03 - 3        - DOG       - 20

Это таблица расходов. Не каждый день заполнил каждую категорию.

Я использую другую таблицу для хранения имен таблиц для идентификаторов категорий.

Я получаю запрос SQL:

SELECT E.expense_date, C.id_category, C.category_name, SUM(E.price) AS price
FROM expenses E, expenses_category C
WHERE E.category = C.id_category
GROUP BY E.expense_date, C.category_name
ORDER BY E.expense_date ASC, C.category_name, E.price ASC

Результат запроса SQL выглядит примерно так:

DATE - CAT. NAME - SUM
1/01 - CAR       - 5
1/01 - FOOD      - 10
1/02 - CAR       - 5
1/02 - FOOD      - 20
1/02 - HOUSE     - 50
1/01 - CAR       - 5
1/01 - FOOD      - 20
1/01 - DOG       - 20

Но я хотел бы перенести SQL select в сводную таблицу, где строки будут датами, столбцы данных будут категориями, а данные таблицы будут суммой затрат. Как это:

      CAR / FOOD / DOG / HOUSE / DAY
1/01   5     10     X     X      25
1/02   5     20     X    50      65
1/03   5     20    20     X      45
SUM   15     50    20    50     135

Я обдумываю эту проблему около месяца и ищу ответы за последние 6 часов. К сожалению, моих навыков недостаточно для решения кейса и создания правильного кода PHP: {

Я пробовал несколько подходов, но не было успешным. Я знаю только процедурное кодирование, ООП — это мое знание.

Вся информация / учебные пособия, которые я нашел, фокусируются только на конечных категориях, в то время как я пытаюсь создать код, который будет создавать количество столбцов таблицы на основе количества категорий, которые были извлечены (понимать бесконечно).

Кто-нибудь может помочь мне разработать PHP-код для извлечения сводной таблицы?

0

Решение

Рассматривается результат вашей базы данных $result это оспоримый и выбранный вами режим извлечения:

foreach($result as $row)
{
$table[$row["expense_date"]][$row["category_name"]] = $row["price"];
}

Перед новым дата расхода Вы также можете инициализировать все поля категорий с помощью "X" чтобы они уже были в $table массив или вы делаете это на лету, когда вы выводите таблицу на неустановленные поля в матрице.

То же, что и в столбце итогов, вам нужно создать сумму (или вы уже делаете это в своем запросе SQL, это должно быть возможно с помощью UNION).

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]