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

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
sts
Сообщения: 20
Зарегистрирован: 10 янв 2006, 21:06

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

Сообщение sts » 11 окт 2012, 13:53

Помогите, пожалуйста, новичку:
нужно узнать кол-во строк в НД, формируемом запросом:

select m.m_forkey, count(m.m_forkey) from materials m
where m.m_date >'01.01.2007'
group by m.m_forkey
having count(m.m_forkey)=12

можно это сделать одним запросом? (т.е. как правильно подзапрос написать)

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1427
Зарегистрирован: 15 сен 2005, 09:05
Откуда: Krupka
Контактная информация:

Re: помогите с подзапросом

Сообщение Dimitry Sibiryakov » 11 окт 2012, 15:04

Код: Выделить всё

select count(*) from
  (select m.m_forkey, count(m.m_forkey) from materials m
   where m.m_date >'01.01.2007'
   group by m.m_forkey
   having count(m.m_forkey)=12)

sts
Сообщения: 20
Зарегистрирован: 10 янв 2006, 21:06

Re: помогите с подзапросом

Сообщение sts » 11 окт 2012, 15:51

Dimitry Sibiryakov писал(а):

Код: Выделить всё

select count(*) from
  (select m.m_forkey, count(m.m_forkey) from materials m
   where m.m_date >'01.01.2007'
   group by m.m_forkey
   having count(m.m_forkey)=12)
Ошибка, однако:
SQL error code = -104.
Token unknown - line 2, char 4.
select.

Я так уже пытался сделать, получил ошибку и засомневался - а можно ворбще FROM (запрос) делать?
А вообще - то задача такая - подсчитать число клиентов, мелькнувших в таблице только 1 раз за период.
(m_forkey - вторичный ключ по коду клиента)
А что скажете, если так:

select count(*) from materials m
where (m.m_date>'01.01.2007')
and singular (select n.m_forkey from materials n where n.m_forkey = m.m_forkey)?

dimitr
Разработчик Firebird
Сообщения: 888
Зарегистрирован: 26 окт 2004, 16:20

Re: помогите с подзапросом

Сообщение dimitr » 11 окт 2012, 18:41

для начала назови сервер и его версию

sts
Сообщения: 20
Зарегистрирован: 10 янв 2006, 21:06

Re: помогите с подзапросом

Сообщение sts » 17 окт 2012, 14:42

dimitr писал(а):для начала назови сервер и его версию
FB 1.5.3

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя