Страница 1 из 1

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

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

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

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

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

Добавлено: 11 окт 2012, 15:04
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)

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

Добавлено: 11 окт 2012, 15:51
sts
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)?

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

Добавлено: 11 окт 2012, 18:41
dimitr
для начала назови сервер и его версию

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

Добавлено: 17 окт 2012, 14:42
sts
dimitr писал(а):для начала назови сервер и его версию
FB 1.5.3