Полезные запросы
Материал из GedeminWiki
Ниже приводится список полезных запросов к таблицам Гедымина. По этой теме, см. также Полезные запросы к системным таблицам Firebird.
Документы
Среднее количество позиций по документу с позициями в базе данных:
select (select count (*) from gd_document where not parent is null) / (select count (distinct parent) from gd_document where not parent is null) from rdb$database
Сообщения
Распределение количества обращений клиентов по месяцам:
select
extract(year from m.msgstartdate),
extract(month from m.msgstartdate),
count(m.subject)
from
msg_message m join gd_contact c
on c.id = m.fromcontactkey
where
/* добавьте сюда условие для отбора по */
/* конкретному клиенту или группе клиентов */
UPPER(c.name) LIKE '%'
group by
1, 2
order by
1 desc, 2 desc
Количество обращений по клиенту за заданный промежуток времени:
select
c.name,
count(c.name)
from
gd_contact c join msg_message m
on c.id = m.fromcontactkey
where
/* укажите здесь период и условия отбора клиентов */
m.msgstartdate between '01.06.2006' and '30.11.2006'
and UPPER(c.name) LIKE 'ИП%'
group by
c.name
order by
2 desc
Справочник клиентов
Запрос извлекает контакты, наименования которых начинаются с одинаковой последовательности символов. Длину последовательности можно регулировать.
select
c.id, c2.id, c.name, c2.name
from
gd_contact c join gd_contact c2
on SUBSTRING(UPPER(c.name) FROM 1 FOR 9) = SUBSTRING(UPPER(c2.name) FROM 1 FOR 9)
and c.id <> c2.id
where
/* задайте здесь условие, для того, чтобы вести поиск не по всем контактам */
UPPER(c.name) LIKE 'ИП%'
