Это структура двух таблиц
Таблица А
+----+-----+----+----------------------+--------------------+----------+
| id | ... |....| time_start | time_end | total |
+----+-----+----+----------------------+--------------------+----------+
1 2015-12-06 10:00:00 2015-12-06 12:00:00 200
2 2015-12-07 10:00:00 2015-12-07 12:00:00 300
Таблица Б
+----+----------+------+------+------+------+
| id | idTableA | val1 | val2 | val3 | val4 |
+----+----------+------+------+------+------+
1 1 10 10 10 10
2 1 10 10 10 10
3 2 10 10 10 10
Цель заключается в следующем: учитывая дату time_start и time_end, отобразить СУММУ итогов (таблица A) и СУММУ значений val1, val2, val3, val4.
Пример :
время_старт = 2015-12-01 00:00:00
время_конец = 2015-12-30 23:59:59
Ожидаемый результат: общая сумма = 500, сумма знач.(1-4) = 120
Я пробовал так:
$myquery = "";
$myquery .= "SELECT SUM(tableA.total) AS myTotal,";
$myquery .= "SUM(tableB.val1) + SUM(tableB.val2) + SUM(tableB.val3) + SUM(tableB.val4) AS myValTotal ";
$myquery .= "FROM tableA INNER JOIN tableB ON tableA.id = tableB.idTableA ";
$myquery .= "WHERE tableA.time_start >='".$dateStart."' AND tableA.time_end <='".$dateEnd."'";
СУММА val(1-4) верна, а СУММА всего нет.
700
?ID
= 1 имеет две записи в таблицеB
, поэтому значение200
считается дважды. Вероятно, вам следует использовать подзапрос. - person HoneyBadger   schedule 08.12.2015