Можно ли отсортировать по продолжительности времени, когда он рассчитывается на основе объединенной таблицы?

У меня есть запрос, чтобы получить общее количество продолжительности, когда пользователь стал внутренним, чм, статус записи. Я хотел спросить, можно ли отсортировать его по общему количеству продолжительности, когда он пересчитывается из другой таблицы? Пожалуйста, посмотрите мою структуру запросов, чтобы понять дальше.

Пользователь может быть назначен во многих статусах. Может быть, он был во внутреннем статусе 4 раза, rc 2 раза и т. Д.

$sql = "SELECT * FROM user WHERE creation_date < NOW()";
$qry = mysql_query($sql);
$res = array();
while($row=mysql_fetch_assoc($qry))
{
$res[] = $row;
$res['duration'] = getTimeDuration($row['userId'],$row['startDate']);

}

function getTimeDuration($userId,$startDate);
{
$sql = "SELECT statusDate FROM userStatus WHERE userId=$userId AND status IN('internal','hm','rec') ORDER BY statusDate DESC
$qry = mysql_query($sql);
While($row=mysql_fetch_assoc($qry))
{
$diff = $row['statusDate']-$startDate;
$duration = $duration + $diff;
}

return $duration;
}

Это структура таблицы
Таблица пользователей

+----------+--------------+
| userId   | startDate    |
+----------+--------------+
| 1         | 2011-09-18   |
+----------+--------------+
| 2         | 2012-05-25   |
+----------+--------------+

Таблица userStatus

+----------+--------------+--------------+
| userId   | statusDate   | status       |
+----------+--------------+--------------+
| 1         | 2012-09-18  |  internal    |
+----------+--------------+--------------+
| 1         | 2012-10-18  |  hm          |
+----------+--------------+--------------+
| 1         | 2012-10-25  |  rec         |
+----------+--------------+--------------+
| 1         | 2012-11-05  |  manager     |
+----------+--------------+--------------+
| 1         | 2012-11-15  | assistant    |
+----------+--------------+--------------+
| 1         | 2012-12-05  | internal     |
+----------+--------------+--------------+
| 2         | 2012-10-05  | rec          |
+----------+--------------+--------------+
| 2         | 2012-11-05  | internal     |
+----------+--------------+--------------+

Выход:
http://screencast.com/t/BsgouWSc5H3m

На моем скриншоте идентификатор пользователя USER: 1 имел общую продолжительность в течение 1589. Идентификатор пользователя USER: 2 имел продолжительность 297. Я хочу добавить возможность сортировки по общему времени. В этом случае, если DESC USER ID 1 будет отображаться первым. Затем, если ASC USER ID: 2 будет отображаться первым.

0

Решение

Задача ещё не решена.

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

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

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