Полезные запросы
Материал из 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 'ИП%'