Я пытаюсь перенести часть своей бизнес-логики из моих программ в хранимые процедуры.Я действительно программист на VB.NET, а не эксперт по SQL, но я изучаю больше SQL и обнаруживаю, что во многих случаях быстрее позволить SQL выполнять мою обработку и возвращать небольшие объемы данных, а не давать мнекуча вещей, и мои программы ломаются от этого.
Итак, моя текущая проблема заключается в следующем:
Я создаю временную шкалу чего-то, что произошло из нескольких разных источников в базе данных.,Соответствующая информация, которую я извлекаю:
- Имя пользователя
- Время, связанное с действием
Я хочу использовать эту временную шкалу, чтобы выяснитьв конечном счете, кто был ответственным за данную вещь в данное время.Таким образом, если 1 пользователь регистрирует 400 действий подряд, прежде чем новый пользователь что-то регистрирует, мне действительно все равно;Я просто хочу увидеть, когда пользователь 1 начал регистрировать и когда пользователь 2 занялся регистрацией.
Более графический пример:
Пользователь |Время
Пользователь1 |12:00
Пользователь1 |12: 01
Пользователь1 |12: 02
Пользователь1 |12: 03
Пользователь1 |12: 04
Пользователь1 |12: 05
Пользователь1 |12: 06
Пользователь2 |12: 07
Пользователь2 |12: 08
Пользователь2 |12: 09
User2 |12: 10
Пользователь2 |12: 11
Пользователь1 |12: 12
Пользователь1 |12:13
Что бы я хотел:
Время пользователя
Пользователь1 |12:00
User2 |12: 07
Пользователь1 |12:12
Теперь, в коде, я бы получил этот результат в DataTable и перебрал каждую строку в таблице.Затем я проверю значение [Имя пользователя] текущей строки по сравнению со значением [Имя пользователя] предыдущей строки и добавлю только значения текущей строки, если [Имя пользователя] было другим.Похоже, что среди настоящих экспертов по SQL существует общее отвращение к использованию курсора, но я не уверен, что пока что думаю таким образом, так может кто-нибудь помочь мне здесь?
До сих пор я успешно получилсырые, нефильтрованные данные в табличную переменную в моем запросе.Итак, мне просто нужно знать, как «свернуть» данные и вернуть только небольшое подмножество.
Спасибо!