Подскажите пожалуйста советом В процессе изучения необходимо реализовать следующее: Имеется 12 таблиц в базе mysql (названные по месяцам) Каждая таблица имеет ячейки (название организации, счет за воду, счет за тепло) Каждую таблицу заполнили 2 организации В итоге каждая таблица выглядит примерно так: организация счет за воду счет за тепло НАЗВАНИЕ1 123.45 456.45 НАЗВАНИЕ2 789.78 852.48 Как можно реализовать СВОД таблиц? Допустим нужно вывести одну таблицу, в которой сложились бы данные за три месяца? То есть нужно вывести сколько организации потратили с января по март… Подскажите, как примерно начать… По отдельности выводить каждую таблицу я научился, а вот со сводом пока не могу разобраться Каждую по отдельности вывожу так: Код (Text): $query ="SELECT * FROM `январь`"; $result = mysqli_query($mysqli, $query) or die("ERORRRR " . mysqli_error($mysqli)); if($result) { $rows = mysqli_num_rows($result); echo "<table border=1><tr><th>ОРГАНИЗАЦИЯ</th><th>СЧЕТ ЗА ВОДУ</th><th>СЧЕТ ЗА ТЕПЛО</th></tr>"; for ($i = 0 ; $i < $rows ; ++$i) { $row = mysqli_fetch_row($result); echo "<tr>"; for ($j = 0 ; $j < 3 ; ++$j) echo "<td>$row[$j]</td>"; echo "</tr>"; } echo "</table>"; mysqli_free_result($result); }
Не надо так делать. Одна таблица с полем дата делается. --- Добавлено --- И тогда задача элементарно решится
Да, Вы правы... А как тогда из таблицы: Название | Вода | Тепло | Месяц SONY | 256 | 879 | Январь SAMSUNG | 897 | 458 | Январь SONY | 256 | 879 | Февраль SAMSUNG | 897 | 458 | Февраль В итоге вывести на экран: Название | Вода | Тепло | SONY | ИТОГ за два месяца | ИТОГ за два месяца | SAMSUNG | ИТОГ за два месяца | ИТОГ за два месяца |
Запросить и обработать на стороне php, к примеру --- Добавлено --- Или можно сделать запрос с группировкой по названию и суммой
По 1 таблице нужно будет выбрать с интервалом и сгруппировать полученные строки по дате, агрегировать колонки вода и тепло функцией sum(). Код (Text): select company, sum(water) as water_amount, sum(heat) as heat_amount, date_format(created_at, '%Y-%m') as date_pay from transactions where date_pay beetwen '2019-10' and '2019-12' group by created_at;
Имена нормализуем. Не путаем понятие даты с названиями месяцев (выше вам показали, что нужно использовать нумерацию месяцев и еще как мин. учитывать год).