Поиск

L2AVADON

СТАТЬИ

Использование табличных функций
ГлавнаяЯзык PL/SQLТабличные функции → Использование табличных функций

В этом разделе мы на реальном примере из практики большой кабель­ной компании, пытающейся отслеживать повторные наряды, пока­жем, как используются табличные функции. Говоря попросту, по­вторный наряд - это направление техника по одному и тому же адресу для повторного выполнения (или исправления) уже сделанной работы в течение 30 дней. Повторный визит не всегда связан с наличием пре­тензий - он может быть результатом установки оборудования в 30-дневный период после предварительного заказа.

Адреса определяются предопределенными идентификаторами. Они могут соответствовать чему угодно, от конкретной кабельной розетки до отдельного дома или большого торгового центра. Вид работы опре­деляется идентификатором типа наряда. Например, тип 1 может озна­чать «Прокладка кабеля», а тип 2 - «Замена кабеля».

Компания имеет отделения в нескольких регионах, в каждом из кото­рых используется собственный набор идентификаторов адресов, типов нарядов и критериев повторного наряда. Эти критерии определяют па­ры типов нарядов, которые должны быть выданы по одному адресу в течение 30-дневного периода, чтобы наряд был признан повторным. Типы нарядов в такой паре могут совпадать или не совпадать, напри­мер «Ремонт кабеля», произошедший после «Прокладки кабеля», мо­жет считаться таким же повторным нарядом, как и два последователь­ных наряда на «Прокладку кабеля».

Эти критерии хранятся в таблице:

SQL> DESC repeat_order_criteria

 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34