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

Откуда:
Сообщений: 116
Добрый день! Переношу данные с Access на MS SQL 2005 (клиент остаётся на Access mdb), таблицы прилинкованы по ODBC.

Есть таблица (2 столбца):

a 14
a 15
a 35
b 15
c 35


Нужна выборка - условие по второму столбцу: 15 and 35. В результате должны получить "a".

В аксе был запрос:
SELECT Поле1
FROM Таблица
GROUP BY Поле1
HAVING -SUM(Поле2=15)>0 AND -SUM(Поле2=35)>0 

который теперь не работает, ODBC ругается на "=". Как реализовать?
24 июн 13, 17:39    [14475815]     Ответить | Цитировать Сообщить модератору
 Re: Запрос с AND  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22551
HAVING SUM(case when Поле2=15 then 1 else 0 end)>0 
   AND SUM(case when Поле2=35 then 1 else 0 end)>0 
?
24 июн 13, 17:44    [14475853]     Ответить | Цитировать Сообщить модератору
 Re: Запрос с AND  [new]
shefus
Member

Откуда:
Сообщений: 116
Паганель,

Неа :( Возвращает пустой рекордсет
24 июн 13, 18:05    [14476000]     Ответить | Цитировать Сообщить модератору
 Re: Запрос с AND  [new]
Shakill
Member

Откуда: мск
Сообщений: 1882
так запрос к аксесу или к скл серверу? если второе, то
select Поле1 from Таблица where Поле2 = 15
intersect 
select Поле1 from Таблица where Поле2 = 35
24 июн 13, 18:09    [14476013]     Ответить | Цитировать Сообщить модератору
 Re: Запрос с AND  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22551
ЧТО???
declare @t table (f1 char(1), f2 int)
insert into @t values
('a', 14),
('a', 15),
('a', 35),
('b', 15),
('c', 35)

SELECT f1
FROM @t
GROUP BY f1
HAVING SUM(case when f2=15 then 1 else 0 end)>0 
   AND SUM(case when f2=35 then 1 else 0 end)>0 
f1
----
a

(1 row(s) affected)
24 июн 13, 18:10    [14476022]     Ответить | Цитировать Сообщить модератору
 Re: Запрос с AND  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20960
select field1
from table
where field2 in (15, 35)
group by field1
having count(distinct field2) = 2
24 июн 13, 18:15    [14476044]     Ответить | Цитировать Сообщить модератору
 Re: Запрос с AND  [new]
shefus
Member

Откуда:
Сообщений: 116
Shakill
так запрос к аксесу или к скл серверу? если второе, то
select Поле1 from Таблица where Поле2 = 15
intersect 
select Поле1 from Таблица where Поле2 = 35


Спасибо, работает!

Паганель
ЧТО???


Извиняюсь, где-то ошибся - тоже работает. Большое спасибо!
24 июн 13, 18:29    [14476098]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить