MySQL запрос, упорядочивая два столбца даты и отслеживая исходный столбец, из которого он получен - PullRequest
0 голосов
/ 05 января 2012

Это упрощенная версия моей задачи. У меня есть таблица с отметками времени входа и выхода для пользователей. Столбцы таблицы: id, имя пользователя, timeIn, timeOut. Я хочу создать отчет, в котором результаты упорядочены по порядку действий: вход или выход, а также отслеживать, является ли он входом или выходом для распечатки. Моя единственная идея на данный момент - создать два массива и inTimeArray и outTimeArray, а затем перебрать их,

if (inTimeArray > outTimeArray) {
    print time in: timestamp;
} else {
print timeout:;
}

Выход Джон в: время Люси в: время Стив: время Люси вне: время Джоэл в: время время: Люси в: время и т.д.

Ответы [ 2 ]

1 голос
/ 05 января 2012

Вы можете использовать оператор case в своем запросе:

select
    id,
    username,
    timeIn,
    timeOut,
    case when timeIn > timeOut then timeIn else timeOut end as timestamp
from
    users

Тогда вы можете просто сравнить, если timestamp = timeIn или timeOut. Кроме того, вы можете просто добавить еще один столбец:

case when timeIn > timeOut then 0 else 1 end as IsTimeOut

В любом случае, действительно.

1 голос
/ 05 января 2012
select *,
least(timein,timeout) as lower,
if(timein < timeout,'in_time','out_time') as description
from table
order by lower
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...