Как получить минимальную и максимальную запись из каждой группы
Образец таблицы
Объявите таблицу @tb(UserId INT, InOutDateTime DATETIME , AttendanceType CHAR(1))
Вставить в @tb значения (1,'2017-08-18 08:00:00.000','я')
Вставить в @tb значения (1,'2017-08-18 07:00:00.000','я')
Вставить в @tb значения (1,'2017-08-18 11:00:00.000','о')
Вставить в @tb значения (1,'2017-08-18 23:00:00.000','я')
Вставить в @tb значения (1,'2017-09-18 06:00:00.000','я')
Вставить в @tb значения (1,'2017-09-18 22:00:00.000','о')
Вставить в @tb значения (1,'2017-09-18 19:00:00.000','я')
Вставить в @tb значения (3,'2017-08-18 09:00:00.000','я')
Вставить в @tb значения (3,'2017-08-18 15:00:00.000','о')
Вставить в @tb значения (3,'2017-08-18 13:00:00.000','о')
Вставить в @tb значения (3,'2017-08-18 23:00:00.000','я')
выберите * из @tb
Мне нужно минимальное InOutDateTime и максимальное InOutDateTime для каждого пользователя на каждую дату. Минимальный InOutDateTime должен быть оттуда, где AttendanceType='I' .
Аналогично максимальное значение InOutDateTime должно быть оттуда, где AttendanceType='O'
Что я уже пробовал:
выберите имя пользователя, мин(InOutDateTime) min_InDateTime, Макс(InOutDateTime) max_OutDateTime
от @группа ТБ на пользователя, литой(InOutDateTime как дата)
Заказ по идентификатору пользователя, литой(InOutDateTime как дата)
Но я не могу получить результаты, основанные на AttendanceType