Автор Тема: Повторяющиеся записи  (Прочитано 2798 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Romeo

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 17
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Повторяющиеся записи
« : 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

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 400
  • +1/-0
  • 0
    • Просмотр профиля
Повторяющиеся записи
« Ответ #1 : 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

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28