Forum Webscript.Ru

Общие => Базы данных => Тема начата: Romeo от 22 Января 2007, 17:57:18

Название: Повторяющиеся записи
Отправлено: Romeo от 22 Января 2007, 17:57:18
Есть БД состояшая из 2 таблиц:
1. Люди
2. События
В таблице люди есть ФИО и код человека
В таблице События есть поля: Код человека, Дата события, Время события, тип события (вход или выход).
Ситуация такая. Нужно посчитать какое время человек находился в помешении, для этого я делаю следующее:
1. Создаю запрос в котором выбираю все записи где тип события=вход
2. Создаю запрос в котором выбираю все записи где тип события=выход
3. Создаю запрос в котором из двух предыдуших запросво путем простого вычетания получаю время пребывания, но вот тут то и начинаеться интересные веши.
Если человек просто зашел и вышел то все нормально, но стоит человеку зайти и выйти (тоесть вход1 выход1; вход2 выход2) как взапросе получаеться следующее:
Вход1-выход2
вход2-выход1
вход2-выход2
вход1-выход1
Как можно победить эту ситуацию? Чтобы в результате остались только Вход1-выход1 и вход2-выход2
Название: Повторяющиеся записи
Отправлено: andymc от 23 Января 2007, 13:41:39
А что если выбрать все входы определённого человека в 1 запросе и суммировать (= сумма входов)
Потом также получить сумму выходов.
А потом выполнить операцию вычитания суммы выходов и суммы входов.

Предполагается, что время в формате TIMESTAMP.

Например, в простом случае, вход = 2, выход = 10  -> длина = 10 - 2 = 8
В случае с несколькими входами: вход1 = 2, выход1 = 10, вход2 = 12, выход2 = 14. Результат = (10 + 14) - (2 + 12) = 10