Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Подсчет зарегистрированных лиц в БД  [new]
Поларин
Member

Откуда:
Сообщений: 8
Всем привет! Ответ на свой вопрос по форуму искал, но недолго, прошу сразу камнями не закидывать.
Необходимо сделать выборку из представления, в котором есть ID документа, Фамилия, Имя, Дата рождения, IDюзера, OperationTime, гражданство. Результатом выборки должен быть список людей по гражданству за определенный период, которые были зарегистрированы в БД более 2-х раз.
Запрос составлял так:
select            IdentifyDocumentID, Family, Name, BirthDate, NationalityID, UserInfoID
from              View_1
where            NationalityID in (3,5,7,9,11)
and               UserInfoID = 'Иванов' -- ФИО персонала
and               OperationTime between '2017-08-01' and getdate ()
group by        IdentifyDocumentID, Family, Name, BirthDate, NationalityID, UserInfoID
having count (IdentifyDocumentID) > 2

В таком виде запрос выдает нужный результат, но если добавить OperationTime, то результат закономерно равен нулю.
Вопрос. Как добавить в финальную выборку время посещения

Сообщение было отредактировано: 1 сен 17, 01:15
31 авг 17, 21:11    [20763074]     Ответить | Цитировать Сообщить модератору
 Re: Подсчет зарегистрированных лиц в БД  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36968
Поларин
Вопрос. Как добавить в финальную выборку время посещения
Придумать, какой именно из всех OperationTime должен выводиться, если их больше одного, и применить соответствующую агрегатную функцию к нему.
1 сен 17, 01:18    [20763367]     Ответить | Цитировать Сообщить модератору
 Re: Подсчет зарегистрированных лиц в БД  [new]
982183
Member

Откуда: VL
Сообщений: 3352
BirthDate выводит, а OperationTime не выводит.
Разве есть разница?
Разве важно вданном сдучае то, что BirthDate одинаков, а OperationTime различен?
1 сен 17, 03:41    [20763381]     Ответить | Цитировать Сообщить модератору
 Re: Подсчет зарегистрированных лиц в БД  [new]
982183
Member

Откуда: VL
Сообщений: 3352
сорри тормоз.
Увидел BirthDate в группировке
1 сен 17, 03:42    [20763382]     Ответить | Цитировать Сообщить модератору
 Re: Подсчет зарегистрированных лиц в БД  [new]
Поларин
Member

Откуда:
Сообщений: 8
Гавриленко Сергей Алексеевич
Поларин
Вопрос. Как добавить в финальную выборку время посещения
Придумать, какой именно из всех OperationTime должен выводиться, если их больше одного, и применить соответствующую агрегатную функцию к нему.

Дело в том,что нужно выбрать время каждого посещения конкретного человека
1 сен 17, 07:12    [20763431]     Ответить | Цитировать Сообщить модератору
 Re: Подсчет зарегистрированных лиц в БД  [new]
Невский
Member

Откуда:
Сообщений: 30
IdentifyDocumentID Уникальный для каждого сотрудника? Как вариант:

select distinct IdentifyDocumentID, Family, Name, BirthDate, NationalityID, UserInfoID, OperationTime
from View_1 v
where IdentifyDocumentID in (select IdentifyDocumentID
from View_1
where NationalityID in (3,5,7,9,11)
and UserInfoID = 'Иванов' -- ФИО персонала
and OperationTime between '2017-08-01' and getdate ()
group by IdentifyDocumentID
having count (IdentifyDocumentID) > 2)

Только зачем сразу из вьюшки? Может результат брать из вьюшки, а подзапрос из таблиц построить?
1 сен 17, 10:07    [20763779]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить