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

Откуда:
Сообщений: 199
Добрый день!

Собственно, есть таблица:
ID CODE
67543 CC02
67543 CC01
67543 CC04
87543 CC01
43211 CC09
43211 CC01

необходимо вычислить поля ID, которым соответствует несколько значений поля CODE.
Предполагаю, что, возможно, реализовывать нужно исходя из плюшки HAVING COUNT(CODE) > 1, но совсем не представляю как это все правильно скрутить вместе. Буду сильно признателен, если кто-нибудь подкинет хотя бы небольшую подсказку.
13 авг 13, 16:10    [14703265]     Ответить | Цитировать Сообщить модератору
 Re: Правильное использование HAVING  [new]
SiNtez_26
Member

Откуда:
Сообщений: 199
Да, забыл добавить, что используется MS SQL Server 2008. Вдруг там есть интересные особенности реализации.
13 авг 13, 16:12    [14703272]     Ответить | Цитировать Сообщить модератору
 Re: Правильное использование HAVING  [new]
Glory
Member

Откуда:
Сообщений: 104751
SiNtez_26
Буду сильно признателен, если кто-нибудь подкинет хотя бы небольшую подсказку.

Стандартный хелп называется http://technet.microsoft.com/ru-ru/library/ms180199.aspx
13 авг 13, 16:12    [14703277]     Ответить | Цитировать Сообщить модератору
 Re: Правильное использование HAVING  [new]
Гость333
Member

Откуда:
Сообщений: 3683
SiNtez_26
которым соответствует несколько значений поля CODE

Несколько различных значений поля CODE?
HAVING COUNT(DISTINCT CODE) > 1
13 авг 13, 16:23    [14703350]     Ответить | Цитировать Сообщить модератору
 Re: Правильное использование HAVING  [new]
SiNtez_26
Member

Откуда:
Сообщений: 199
Да нет, имеется ввиду, как сделать, чтобы cработало
SELECT ID FROM TABLE HAVING COUNT(DISTINCT(CODE)) > 1
13 авг 13, 16:33    [14703435]     Ответить | Цитировать Сообщить модератору
 Re: Правильное использование HAVING  [new]
Glory
Member

Откуда:
Сообщений: 104751
SiNtez_26
Да нет, имеется ввиду, как сделать, чтобы cработало
SELECT ID FROM TABLE HAVING COUNT(DISTINCT(CODE)) > 1

Прочитать сообщение об ошибке не судьба ?
13 авг 13, 16:35    [14703455]     Ответить | Цитировать Сообщить модератору
 Re: Правильное использование HAVING  [new]
SiNtez_26
Member

Откуда:
Сообщений: 199
Я умею читать, и я знаю в чем ошибка. Проблема в том, что я НЕ могу исправить эту ошибку и плюс чтобы все делалось как надо.
13 авг 13, 16:38    [14703489]     Ответить | Цитировать Сообщить модератору
 Re: Правильное использование HAVING  [new]
Glory
Member

Откуда:
Сообщений: 104751
SiNtez_26
Проблема в том, что я НЕ могу исправить эту ошибку и плюс чтобы все делалось как надо.

Т.е. вы отказываетесь добавить "in either an aggregate function or the GROUP BY clause." ?
Можно узнать причину вашего отказа ?
13 авг 13, 16:40    [14703502]     Ответить | Цитировать Сообщить модератору
 Re: Правильное использование HAVING  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Glory
Можно узнать причину вашего отказа ?

Ему не нужно второе поле,я так полагаю....
13 авг 13, 16:42    [14703523]     Ответить | Цитировать Сообщить модератору
 Re: Правильное использование HAVING  [new]
SiNtez_26
Member

Откуда:
Сообщений: 199
Пример, что я описал выше был примером. То есть подразумевается, что он не является рабочим кодом. Возможно, что я неправильно озаглавил тему, но вопрос был вообще в другом.
13 авг 13, 16:42    [14703526]     Ответить | Цитировать Сообщить модератору
 Re: Правильное использование HAVING  [new]
Bryk_Alien
Guest
SELECT ID 
FROM TABLE 
GROUP BY ID 
HAVING COUNT(CODE) > 1
13 авг 13, 16:42    [14703528]     Ответить | Цитировать Сообщить модератору
 Re: Правильное использование HAVING  [new]
Glory
Member

Откуда:
Сообщений: 104751
Maxx
Glory
Можно узнать причину вашего отказа ?

Ему не нужно второе поле,я так полагаю....

в этом запросе - SELECT ID FROM TABLE HAVING COUNT(DISTINCT(CODE)) > 1 - элементарно пропущена конструкция, которая нужна согласно синтасису.
В чем проблема в ее добавлении - автор темы скрывает
13 авг 13, 16:44    [14703545]     Ответить | Цитировать Сообщить модератору
 Re: Правильное использование HAVING  [new]
SiNtez_26
Member

Откуда:
Сообщений: 199
Все, проблему решил путем группировки и последующего юза темповой таблицы.
13 авг 13, 16:48    [14703575]     Ответить | Цитировать Сообщить модератору
 Re: Правильное использование HAVING  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Glory,

уже доглядел
13 авг 13, 16:55    [14703619]     Ответить | Цитировать Сообщить модератору
 Re: Правильное использование HAVING  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 6201
SiNtez_26,

почитайте про оконные функции и CTE. HAVING тут не нужен.
13 авг 13, 16:59    [14703661]     Ответить | Цитировать Сообщить модератору
 Re: Правильное использование HAVING  [new]
SiNtez_26
Member

Откуда:
Сообщений: 199
Maxx
Glory,

уже доглядел

Да не, знал я про ORDER BY, просто неправильно трактовал результаты.
13 авг 13, 17:04    [14703701]     Ответить | Цитировать Сообщить модератору
 Re: Правильное использование HAVING  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
SiNtez_26
Maxx
Glory,

уже доглядел

Да не, знал я про ORDER BY, просто неправильно трактовал результаты.
Теперь про ORDER BY хотите поговорить?
13 авг 13, 17:05    [14703714]     Ответить | Цитировать Сообщить модератору
 Re: Правильное использование HAVING  [new]
SiNtez_26
Member

Откуда:
Сообщений: 199
Тьфу, черт возьми, конечно я имел ввиду GROUP BY :)
13 авг 13, 17:30    [14703880]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить