Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Sergiooo Member Откуда: Сообщений: 2 |
Ситуация следующая. Есть таблица к примеру заполненная так |id1 | id2| ---------- |1 | A| |1 | B| |1 | C| |2 | A| |2 | C| |3 | A| |3 | B| Нужно выбрать все id1 у который есть в id2 A или С. Результатом в данном случае будет 1,2. Для A или B будет 1,3. Возможно ли написать такой запрос? |
23 янв 13, 15:27 [13816023] Ответить | Цитировать Сообщить модератору |
Гость333 Member Откуда: Сообщений: 3683 |
Sergiooo,select t.id1 from [таблица к примеру заполненная так] t where t.id2 in ('A', 'C') group by t.id1 having count(distinct t.id2) = 2 |
23 янв 13, 15:57 [13816357] Ответить | Цитировать Сообщить модератору |
Sergiooo Member Откуда: Сообщений: 2 |
Вообще нужно было найти ID1 где есть только и только нужные ID2. Вышло вот так: select t.id1 from test t where (t.id2='A') or (t.id2='B') group by t.id1 EXCEPT select t.id1 from test t where (t.id2<>'A') and (t.id2<>'B') group by t.id1 |
23 янв 13, 16:29 [13816690] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47047 |
Или что-то похожее |
||
23 янв 13, 17:02 [13816944] Ответить | Цитировать Сообщить модератору |
Добрый Э - Эх
Guest |
iap, именно так оно и есть - реляционное деление в чистом виде. |
24 янв 13, 05:35 [13819097] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47047 |
да ещё с очень интересными ссылками внутри |
||
24 янв 13, 09:25 [13819468] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |