Форум OlegON > Ресурсы OlegON > Вопросы сервера > Программы OlegON

Optimizer-4 - Пользовательские отчеты. : Программы OlegON

28.03.2024 12:58


16.11.2011 17:31
konst
 
о чем данная тема - предлагаю здесь делиться своими наработками на эту тему.
описание функционала "Пользовательские отчеты" в Optimizer'e:
olegon_reps - Таблица с пользовательскими отчетами, в которую можно забивать запросы для добавления в ежедневный отчет.
Примеры есть по умолчанию. Первая колонка - название раздела, вторая - сам запрос к базе.
Не забываем указывать схемы таблиц. И еще... Давайте поскромнее с размерами писем, ладно?
Мне тут перегрузить почтовик тоже не хочется, если вы многомегабайтные письма будете слать.
При запуске пользовательских отчетов информация об их обработке выводится на экран и в лог клиентской части.
16.11.2011 17:36
konst
 
отчет предназначен в первую очередь для менеджеров - чтобы они не забывали блокировать карточки выведенные из контрактов и остаток по которым равен нулю.

Код:
SELECT   x.article "Артикул", REPLACE (s.NAME, CHR (9), ' ') "Наименование"
    FROM ((SELECT z.article
             FROM supermag.smcard z
            WHERE z.accepted = 1 AND z.datatype = '0'
           MINUS
           SELECT c.article
             FROM supermag.smdocuments a,
                  supermag.smcontracts b,
                  supermag.smspec c
            WHERE a.doctype = 'CO'
              AND a.docstate > '1'
              AND a.ID = b.ID
              AND b.beginsat < SYSDATE
              AND b.endsat > SYSDATE
              AND c.doctype = 'CO'
              AND c.docid = a.ID)
          MINUS
          SELECT y.article
            FROM supermag.smgoods y
           WHERE y.quantity != 0) x,
         supermag.smcard s
   WHERE x.article = s.article
ORDER BY 2
16.11.2011 17:43
konst
 
В первую очередь эти отчеты создавались для того, чтобы оценить процесс перехода на автозаказ. Результат - кол-во заказов поставщику, кол-во строк, сумма, ассортимент - за последние 7 дней. Отдельно по ЦО и МХ.
Заказы между ЦО и МХ делю по префиксу
Заказы созданные в ЦО (за последние 7 дней)
Код:
SELECT SUM (aa) "Кол-во заказов", SUM (bb) "Кол-во строк", SUM (cc) "Сумма",
       SUM (dd) "Ассортимент"
  FROM (SELECT COUNT (ID) aa, SUM (zz) bb, SUM (totalsum) cc, NULL dd
          FROM (SELECT   a.ID, COUNT (b.article) zz, a.totalsum
                    FROM supermag.smdocuments a, supermag.smspec b
                   WHERE a.doctype = 'OR'
                     AND a.createdat BETWEEN SYSDATE - 8 AND SYSDATE - 1
                     AND a.ID LIKE 'ЗПЦ%'
                     AND b.doctype = 'OR'
                     AND b.docid = a.ID
                GROUP BY a.ID, a.totalsum)
        UNION ALL
        SELECT NULL aa, NULL bb, NULL cc, COUNT (yy) dd
          FROM (SELECT DISTINCT (b.article) yy
                           FROM supermag.smdocuments a, supermag.smspec b
                          WHERE a.doctype = 'OR'
                            AND a.createdat BETWEEN SYSDATE - 8 AND SYSDATE
                                                                    - 1
                            AND a.ID LIKE 'ЗПЦ%'
                            AND b.doctype = 'OR'
                            AND b.docid = a.ID))
Заказы созданные в МХ (за последние 7 дней)
Код:
SELECT SUM (aa) "Кол-во заказов", SUM (bb) "Кол-во строк", SUM (cc) "Сумма",
       SUM (dd) "Ассортимент"
  FROM (SELECT COUNT (ID) aa, SUM (zz) bb, SUM (totalsum) cc, NULL dd
          FROM (SELECT   a.ID, COUNT (b.article) zz, a.totalsum
                    FROM supermag.smdocuments a, supermag.smspec b
                   WHERE a.doctype = 'OR'
                     AND a.createdat BETWEEN SYSDATE - 8 AND SYSDATE - 1
                     AND a.ID LIKE 'ЗПП%'
                     AND b.doctype = 'OR'
                     AND b.docid = a.ID
                GROUP BY a.ID, a.totalsum)
        UNION ALL
        SELECT NULL aa, NULL bb, NULL cc, COUNT (yy) dd
          FROM (SELECT DISTINCT (b.article) yy
                           FROM supermag.smdocuments a, supermag.smspec b
                          WHERE a.doctype = 'OR'
                            AND a.createdat BETWEEN SYSDATE - 8 AND SYSDATE
                                                                    - 1
                            AND a.ID LIKE 'ЗПП%'
                            AND b.doctype = 'OR'
                            AND b.docid = a.ID))
16.11.2011 17:50
konst
 
т.к. менеджеров у меня не очень много а работы хватает, то хочется хоть как то оценить объем выполняемой работы в плане заказа товаров...
отчет выводит в разрезе менеджеров - кол-во заказов поставщику, сумму заказов за последние 14 дней...
Код:
SELECT   z.username "Менеджер", COUNT (z.ID) "Кол-во заказов",
         SUM (b.totalsum) "Сумма"
    FROM (SELECT   a.ID, a.username
              FROM supermag.smdoclog a
             WHERE a.doctype = 'OR'
               AND a.docdate BETWEEN SYSDATE - 15 AND SYSDATE - 1
               AND a.oldstate = 1
               AND a.newstate = 2
               AND a.username IN
                              ('ivanov', 'petrov', 'sidorov')
          GROUP BY a.ID, a.username) z,
         supermag.smdocuments b
   WHERE z.ID = b.ID
GROUP BY z.username
в принципе имена менеджеров можно привязать к должности...
17.11.2011 09:24
konst
 
Начинающиеся акции
Код:
  SELECT a.ID, b.NAME, b.dateend
  FROM supermag.smdocuments a, supermag.smauctions b
 WHERE a.doctype = 'MA'
   AND a.ID = b.ID
   AND b.dateend BETWEEN SYSDATE AND SYSDATE + 2
Завершающиеся акции
Код:
  SELECT a.ID, b.NAME, b.datebegin
  FROM supermag.smdocuments a, supermag.smauctions b
 WHERE a.doctype = 'MA'
   AND a.ID = b.ID
   AND b.datebegin BETWEEN SYSDATE - 2 AND SYSDATE
18.11.2011 09:20
konst
 
данный запрос отбирает МА - срок действия которых истек, но по каким-то причинам они не завершились.... последний раз, например, у меня ругалось на то, что при создании акта переоценки на 2 артикула была нулевая цена...

Код:
SELECT a.ID, b.NAME, b.dateend
  FROM supermag.smdocuments a, supermag.smauctions b
 WHERE a.doctype = 'MA'
   AND a.docstate = 3
   AND a.ID = b.ID
   AND b.dateend < SYSDATE;
p.s. какая то подозрительная тишина... неужели ни кто не пользуется? тем более совсем не обязательно использовать эти запросы только в оптимизере, лично у меня они работают еще в паре приложений. Может быть кто-нибудь выложит более оптимизированные запросы....
Часовой пояс GMT +3, время: 12:58.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.