Есть таблица вида [Date],[Time],[Name],[IP], в которой регистрируются входы пользователей на ПК.
За 1 день пользователь может зайти несколько раз с разных ПК. Задача вытащить из списка только первые входы.
С помощью Тостера уже есть скрипт, который вытаскивает этот набор, но без [IP]
select dateadd(day, datediff(day, 0, CONVERT(datetime, LEFT(CONVERT(VARCHAR, [Date]+' '+[Time], 103), 19))), 0) [Date], convert (char(8), min(CONVERT(datetime, LEFT(CONVERT(VARCHAR, [Date]+' '+[Time], 103), 19))), 108) [Time],
[Name]
from [OVB].[dbo].[Logon]
group by dateadd(day, datediff(day, 0, CONVERT(datetime, LEFT(CONVERT(VARCHAR, [Date]+' '+[Time], 103), 19))), 0), [Name]
order by [Name],[Date]
Пока без [IP] - все классно, в выборке только первые входы. Как только в запрос добавляю [IP]
select dateadd(day, datediff(day, 0, CONVERT(datetime, LEFT(CONVERT(VARCHAR, [Date]+' '+[Time], 103), 19))), 0) [Date], convert (char(8), min(CONVERT(datetime, LEFT(CONVERT(VARCHAR, [Date]+' '+[Time], 103), 19))), 108) [Time], [Name], [IP]
from [OVB].[dbo].[Logon]
group by dateadd(day, datediff(day, 0, CONVERT(datetime, LEFT(CONVERT(VARCHAR, [Date]+' '+[Time], 103), 19))), 0), [Name], [IP]
order by [Name],[Date]
- в выборке получается первый вход по каждому человеку по каждому [IP]. Как выбрать только первый вход в дне, без учета [IP]? Интуитивно понимаю, что его не должно быть в группировке