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

Откуда: Украина, Киев-Одесса
Сообщений: 182
Нужно с таблицы выгрузить список всех действующих договоров на дату @date1, для которых после нужно применить правило отбора - количество договоров, заключенных в период month(@date2), если среди действующих договоров если больше двух разных видов договоров.

Если убрать условие искать значения только в действующих договорах, то правильный результат получаем при выполнении запроса:

select клиент, count (distinct ContractNumber)
       FROM [REPORT].[dbo].[tab1]
	   WHERE    month(@date2)
	   group by клиент
	   having  count (distinct vid) > 1	

может следует создать временную таблицу, и наполнять ее данными [Дата окончания]> @date1, или это не самы оптимальный вариант?
25 мар 14, 13:43    [15783327]     Ответить | Цитировать Сообщить модератору
 Re: Помогите составить запрос..  [new]
Glory
Member

Откуда:
Сообщений: 104751
googlogmob
может следует создать временную таблицу, и наполнять ее данными [Дата окончания]> @date1

Зачем, если эти данные уже и так занесены в таблицу ?
Вы умеете в запросе использовать больше одной таблице ?
А использовать одну таблицу несколько раз в одном запросе ?
25 мар 14, 13:46    [15783348]     Ответить | Цитировать Сообщить модератору
 Re: Помогите составить запрос..  [new]
googlogmob
Member

Откуда: Украина, Киев-Одесса
Сообщений: 182
Glory
googlogmob
может следует создать временную таблицу, и наполнять ее данными [Дата окончания]> @date1

Зачем, если эти данные уже и так занесены в таблицу ?
Вы умеете в запросе использовать больше одной таблице ?
А использовать одну таблицу несколько раз в одном запросе ?


я думал по поводу join. меня смущает что часть запроса, на сверку по видам, все равно будет проходить по всей таблице, даже если потом джойнить ее к таблице действующих договоров.
В таком случае лучше соединять по полю клиент, или номер договора?
25 мар 14, 13:55    [15783422]     Ответить | Цитировать Сообщить модератору
 Re: Помогите составить запрос..  [new]
Glory
Member

Откуда:
Сообщений: 104751
googlogmob
я думал по поводу join. меня смущает что часть запроса, на сверку по видам, все равно будет проходить по всей таблице, даже если потом джойнить ее к таблице действующих договоров.

Вы пытаетесь угадать, как сервер будет осуществлять соединение что ли ?

googlogmob
В таком случае лучше соединять по полю клиент, или номер договора?

По тому, которое даст правильный результат
25 мар 14, 13:58    [15783437]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить