Полезные запросы

Материал из GedeminWiki
(Различия между версиями)
Перейти к: навигация, поиск
 
(не показаны 6 промежуточных версий 1 участника)
Строка 1: Строка 1:
Ниже приводится список полезных запросов.
+
Ниже приводится список полезных запросов к таблицам Гедымина. По этой теме, см. также [[Полезные запросы к системным таблицам Firebird]].
  
 
== Документы ==
 
== Документы ==
Строка 69: Строка 69:
  
 
[[Category:База данных]]
 
[[Category:База данных]]
 +
[[Category:Школа системного администратора]]

Текущая версия на 17:14, 18 мая 2011

Ниже приводится список полезных запросов к таблицам Гедымина. По этой теме, см. также Полезные запросы к системным таблицам 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 'ИП%'
Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты