Получение суммы

push

Новичок
Получение суммы

Делаю дополнение к отчётности. Отчёт выглядит так:

дата / область / город_1 / город_2 / км

это отчёт о поездках за месяц, за день бывает до 10 поездок, в каждой поезки высчитывается растояние, стоит следующая задача:
допусти инженер поехал из москвы в питер = 100 км, потом из питера в ярославль = 100 км, на этом его заявки кончились, нужно посчитать растояние от ярославля до москвы, это растояние домой.

логику строил такую:
1. получаю данные: инженер,месяц,год. Группирую данные по дням.

PHP:
$str_1 = mysql_query("select d,m,y from city where username='$username' and y='$y' and m='$m' group by y,m,d");
2. затем узнаю первый город в тот день и последний:

PHP:
$str_2 = mysql_query("select city_1,region from city where d='".$line_1['d']."' and m='".$line_1['m']."' and y='".$line_1['y']."' order by id asc"); 
$str_3 = mysql_query("select city_2,region from city where d='".$line_1['d']."' and m='".$line_1['m']."' and y='".$line_1['y']."' order by id desc");
3. измеряю растояние между городами этими:

PHP:
$str_4 = mysql_query("select km from excel.".$region." where city_1='".$line_2['city_1']."' and city_2='".$line_3['city_2']."'");
4. затем нужно посчитать сумму "км" за весь месяц. Это вот я и не знаю как...

Может я неверно логику составил, или можно все проще, но мозг почему то уперся тупо и не хочет искать варианты реализации...

направьте пожалуйста.
 

Bitterman

Новичок
$str_4 = mysql_query("select km from excel.".$region." where city_1='".$line_2['city_1']."' and city_2='".$line_3['city_2']."'");
Не понял, для каждого региона своя таблица что ли? А если города в разных регионах? Да и держать в таблице расстояния между всеми городами, по-моему, не совсем правильно. Тут скорее подойдет что-то типа графа.
инженер поехал из москвы в питер = 100 км, потом из питера в ярославль = 100 км
Посмотри еще раз карту :)))
-----------------------------------------------------------

2. затем узнаю первый город в тот день и последний
3. измеряю растояние между городами этими
Разве это даст расстояние, которое проехал инженер за день? ИМХО, надо мерять сумму всех поездок.
[sql]
SELECT SUM(km) as distance
FROM City as c
LEFT JOIN region as r ON r.city_1=c.city_1 AND r.city_2=c.city_2
WHERE movedate>='Первое число месяца' and movedate<='Последнее число месяца'
GROUP BY c.username
[/sql]
Что-то в этом духе по идее должно работать. Только дату надо хранить в формате datetime
 
Сверху