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

Откуда:
Сообщений: 63
Есть таблица:

CREATE TABLE [dbo].[example](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[ext_id] [int] NULL,
	[value] [int] NULL,
 CONSTRAINT [PK_example] PRIMARY KEY CLUSTERED 


Картинка с другого сайта.

где ext_id является внешним ключом, в поле value могут быть любые значения
как пример :
ext_id value
1 1
1 2
1 1
2 1
2 3
2 1
3 1
3 1
3 2

нужно получить все ext_id с учетом что value = 1 и value = 2
то есть результат запроса должен вывести:
ext_id
1
3

помогите с запросом

К сообщению приложен файл. Размер - 20Kb
30 ноя 14, 02:45    [16926494]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с пониманием решения задачи  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31816
Ivan Yar
нужно получить все ext_id с учетом что value = 1 и value = 2
Условия выборки задаются в условиях выборки WHERE

Что получить - задаётся в списке столбцов SELECT
Что бы не повторялись результаты - пишется DISTINCT
30 ноя 14, 11:32    [16926763]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с пониманием решения задачи  [new]
Ivan Yar
Member

Откуда:
Сообщений: 63
Набросал запрос

  select ext_id from example
  where value in (1,2)
  group by ext_id
  having count(ext_id) > 1


В результатах вывод присутствует:

ext_id
1
2
3

как переписать запрос, что бы ext_id 2 не присутствовало в выборке

К сообщению приложен файл. Размер - 16Kb
30 ноя 14, 12:22    [16926855]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с пониманием решения задачи  [new]
Glory
Member

Откуда:
Сообщений: 104751
select ext_id from example
  where value in (1,2)
  group by ext_id
  having count(disticnt value) = 2
30 ноя 14, 13:35    [16927018]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с пониманием решения задачи  [new]
Ivan Yar
Member

Откуда:
Сообщений: 63
Glory
select ext_id from example
  where value in (1,2)
  group by ext_id
  having count(disticnt value) = 2


Благодарю, не знал что в условии можно использовать (disticnt)
30 ноя 14, 15:17    [16927256]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить