![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите составить запрос
The © (2003-11-20 10:52:00)
День добрый
Есть таблица трех полей и данными такого вида
А В С
0 1 11
0 0 10
1 0 10
1 0 11
2 0 10
2 1 11
5 0 11
4 0 10
4 0 11
3 0 10
.. .. ..
с этой таблицы нужно выбрать те записи, которые имеют разное значение или по полю А, или по полю В, но при этом входят в определенный диапазон по полю С. Например, мне нужно выбрать все записи, где С in (10, 11), но имеют разное значение по полю А или В. В результате должен получить такую выборку:
А В С
0 1 11
0 0 10
2 0 10
2 1 10
5 0 11
3 0 10
.. .. ..
Johnmen (2003-11-20 11:11:00) [21]
>sniknik © (20.11.03 11:07)
Тогда, наверное, ему достаточно DISTINCT.
sniknik (2003-11-20 11:07:00) [22]
Johnmen © (20.11.03 10:58) [2]
так думаю имелась ввиду в комбинации (A||B), 00 ведь нигде не больше не повторяется.
ZrenBy (2003-11-20 11:05:00) [23]
where c in (11,10) забыл
ZrenBy (2003-11-20 11:02:00) [24]
declare @t table(a int, b int, c int)
insert into @t
select 0, 1, 11 union
select 0, 0, 10 union
select 1, 0, 10 union
select 1, 0, 11 union
select 2, 0, 10 union
select 2, 1, 11 union
select 5, 0, 11 union
select 4, 0, 10 union
select 4, 0, 11 union
select 3, 0, 10
select t.a,t.b,t.c from (
select a,b from @t group by a,b having sum(1)=1
)q inner join @t t on q.a=t.a and q.b=t.b
order by 1,2
Zacho (2003-11-20 11:01:00) [25]
> Johnmen © (20.11.03 10:58) [2]
А я и не обратил внимания :)
Johnmen (2003-11-20 10:58:00) [26]
>...выбрать все записи, где С in (10, 11), но имеют разное значение по полю А или В.
>
А В С
...
0 0 10
....
Да ? :)
Zacho (2003-11-20 10:57:00) [27]
SELECT * FROM TABLE WHERE A<>B AND C IN(10,11) не подойдет ?