Tariscope 4.x. Керівництво користувача
3. Програма Tariscope
3.5. Робота з поданнями для викликів
3.5.10 SQL запити
Найбільш потужним засобом для створення фільтрів в Tariscope є їх створення на основі SQL запитів. Для створення таких запитів клацніть по іконці Фільтр SQL на панелі інструментів або виберіть в меню програми Фільтр → Фільтр SQL. З'явиться вікно Фільтр подання, показане на Малюнку 3.5.29.
Малюнок 3.5.29
SQL фільтр дозволяє вам створити умови фільтрації будь-якої складності для будь-яких полів таблиці викликів. Ми рекомендуємо використовувати цей спосіб завдання параметрів фільтрації в тому випадку, коли вам не вдається створити необхідний фільтр за допомогою вікна Фільтр або, коли вам простіше написати SQL запит, ніж вибирати необхідні поля у вікні Фільтр. Як правило, створення SQL запитів вимагає певних знань мови SQL. Однак, інтерфейс вікна Фільтр подання дозволяє створювати величезну кількість різних запитів практично без знання цієї мови.
Вікно Фільтр подання (Малюнок 3.5.29) ділиться на дві частини. Верхня частина вікна забезпечує створення SQL запиту шляхом вибору необхідних полів, оператора і введення необхідний значний. Нижня частина вікна відображає частину SQL запиту, яка знаходиться після оператора WHERE. Якщо ви знаєте мову SQL, ви можете вводити запит безпосередньо в нижній частині цього вікна.
Якщо подання викликів до відкриття вікна Фільтр подання не містило жодних умов фільтрації даних, то вид цього вікна буде як показано на Малюнку 3.5.30.
Малюнок 3.5.30
Щоб додати умови фільтрації, натисніть на кнопку "+" в цьому вікні. З'явиться новий рядок у верхній частині вікна. Приклад такого вікна показаний на Малюнку 3.5.31.
Малюнок 3.5.31
Цей рядок складається з трьох частин. У лівій частині відображається посилання Виберіть поле. Вона дозволяє вибрати необхідне для фільтрації поле. Середня частина забезпечує вибір оператора. За замовчуванням відображається значення Дорівнює. Права частини рядка призначена для введення значення для даного поля.
Натисніть двічі по посиланню Виберіть поле. З'явиться список полів таблиці викликів. Перелік полів і їх опис дивіться в Таблиці 3.2. Виберіть потрібну.
Клацніть по посиланню Дорівнює (середня частина рядка). Меню,що з'явилося містить перелік можливих операторів для SQL запиту. Виберіть необхідний оператор. Перелік таких операторів і їх короткий опис наведено в Таблиці 3.7.
Таблиця 3.7
Оператор | Функція | Результат запиту | Приклад використання |
= | Дорівнює | Повертає всі записи, де величина поля дорівнює набору символів, введеному після цього оператора | Виклики від абонента з номером ‘347’: [Originator] = '347' |
<> | Не дорівнює | Повертає всі записи, де величина поля не дорівнює набору символів, введеному після цього оператора | Повертає всі записи, де величина поля не дорівнює набору символів, введеному після цього оператора 0: [Cost] <> 0 |
< | Менше | Повертає всі записи, де значення поля менше, ніж величина, введена після оператора | Виклики з тривалістю меншою, ніж 10 секунд: [CallSeconds]<10 |
<= | Менше або дорівнює | Повертає всі записи, де значення поля менше або дорівнює величині, введеної після оператора | Виклики з датою 20.06.2017 або більш ранні: [CallDate] <= '2017-06-20' |
> | Більше | Повертає всі записи, де значення поля більше, ніж величина, введена після оператора | Виклики з вартістю понад 5 гривень: [Cost] > 5 |
>= | Більше або дорівнює | Повертає всі записи, де значення поля більше або дорівнює величині, введеної після оператора | Виклики з вартістю від 5 тенге і більше: [Cost] >= 5 |
Like | Шаблон | Повертає всі записи, у яких значення поля відповідає введеному шаблону | Всі виклики в США: [ToTelephone] LIKE '%США%' |
Not Like | Не шаблон | Повертає всі записи, у яких значення поля не відповідає введеному шаблону | Всі дзвінки, окрім, що містять ‘Індія’: [ToTelephone] NOT LIKE '%Індія%' |
In | Будь-яке з | Повертаються записи, значення поля яких входить в список введених після оператора значень | Міжміські та міжнародні виклики: [CallType] IN (4, 5) |
Not In | Жодного з | Повертаються записи, значення поля яких не входить в список введених після оператора значень | Виклики з усіх АТС, за винятком АТЗ з ідентифікаторами 33,27: NOT ([PBXID] IN (33, 27)) |
Between | Між | Повертає всі записи, де значення поля потрапляє в заданий інтервал | Виклики за період з 09.06.2017 по 30.06.2017: [CallDate] BETWEEN '2017-06-09' and '2017-06-30' |
Not Between | Не між | Повертає всі записи, де значення поля не влучає у заданий інтервал | Всі дзвінки, окрім періоду 01.05.2017 до 09.05.2017: [CallDate] >= '20170501' AND [CallDate] <= '20170509' |
Is null | Порожнє | Повертаються всі записи, у яких значення поля дорівнює null. | Виклики, де поле Джерело дорівнює null: [Originator] IS NULL |
Is not null | Не порожнє | Повертаються всі записи, у яких значення поля не дорівнює null. | Виклики, де поле Джерело дорівнює null: [Originator] IS NOT NULL |
Двічі клацніть по правій частині рядка (Малюнок 3.5.31). Залежно від обраного поля з'явиться або список пропонованих значень або позиція для введення значення. Виберіть або введіть необхідне значення. У нижній частині цього вікна буде відображатися SQL запит.
Щоб додати нову умову фільтрації, натисніть на кнопку "+" в цьому вікні. З'явиться новий рядок. Повторіть дії по формуванню умови фільтрації, які описані вище.
Перші і наступні умови фільтрації зв'язуються логічним оператором. За замовчуванням використовується оператор І. Для того, щоб змінити його на інший логічний оператор, натисніть по ньому і в меню оберіть необхідний оператор.
При бажанні ми можете відредагувати або безпосередньо ввести SQL запит в нижній частині вікна.
Приклад
Розглянемо приклад створення SQL запиту. Наприклад, нам треба відфільтрувати все міжміські та міжнародні виклики і, які мають тривалість більше 10 хвилин або їх вартість більше 5 євро.
Щоб створити такий запит у вікні Фільтр подання оберіть пункт І. В меню оберіть пункт Додати групу. Натитсніть по другому посиланну І. В меню оберіть АБО. Натисніть по посиланню Вибрати поле. В меню оберіть пункт Тип виклику. В якості оператора залишаємо значення Дорівнює, яке було задано за замовчуванням. Двічі клацніть по посиланню Невідомий і виберіть значення Міжміський. SQL запит набуде вигляду:
([СallType] = 4)
Щоб додати умови, пов'язані з міжнародними викликами, натисніть на кнопку "+" біля посилання АБО. З'явиться новий рядок. Двічі клацніть по посиланню Виберіть поле і в списку виберіть Тип виклику. В якості оператора залишаємо значення Дорівнює, яке було задано за замовчуванням. Двічі клацніть по посиланню Невідомий і виберіть значення Міжнародний. SQL запит набуде вигляду::
([CallType] = 4 OR [CallType] = 5)
Щоб додати умови фільтрації, пов'язані з тривалістю виклику, натисніть на кнопку "+", біля посилання І. З'явиться новий рядок. Двічі клацніть в цьому рядку за посиланням Виберіть поле і в списку виберіть значення Тривалість. В якості оператора виберіть значення Більше. Клацніть по посиланню 'введіть значення' і введіть 00:10:00. SQL запит набуде вигляду:
([CallType] = 4 OR [CallType = 5]) AND CallDuration > '00:10:00'
Наступним кроком ми додамо інформацію про вартість викликів. Клацніть по кнопці '+' біля посилання І. З'явиться новий рядок запиту. Двічі клацніть по посиланню Виберіть поле та в списку виберіть значення Вартість. В якості оператора умови фільтрації виберіть значення Більше. Клацніть по посиланню 'введіть значення' і введіть 5. SQL запит набуде вигляду:
([CallType] = 4 OR [CallType] = 5) AND [CallDuration] > '00:10:00' AND [Cost] > 5
Додайте дужки для вираження: [CallDuration] > '00:10:00' AND [Cost] > 5, і замініть І на АБО. SQL запит набуде вигляду:
([CallType] = 4 OR [CallType] = 5) AND ([CallDuration] > '00:10:00' OR [Cost] > 5)
Клацніть на панелі інструментів по посиланню Застосувати фільтр, і ви побачите в поданні виклики, які задовольняють створеному SQL запиту.
Можливі інші варіанти написання SQL запиту за даним завданням. Повністю аналогічним буде наступний запит:
((CallType = 4 OR CallType = 5) AND CallDuration > '00:10:00') OR ((CallType = 4 OR CallType = 5) AND Cost > 5)
або
CallType IN (4,5) AND (CallDuration > '00:10:00' OR Cost > 5)
Останній варіант SQL запиту є найбільш компактним. Він використовує оператор IN (Будь-яке з), який для даного прикладу означає, що поле Тип виклику складається зі списку: 4 - відповідає міжміським викликам і 5 - міжнародним.
Користувач, який добре знайомий з синтаксисом SQL запитів може відразу ввести необхідний запит.
Для швидкого очищення умов фільтрації в вікні Фільтр подання нитисніть по іконці Очистити на панелі інструментів.
Якщо ви хочете створити в цьому вікні умови фільтрації даних зберегти для майбутнього використання, натисніть на її зображення Зберегти як, розташованої на панелі інструментів.
Для того, щоб вибрати раніше збережений фільтр для його застосування або редагування, натисніть на її зображення Відкрити на панелі інструментів і виберіть потрібний фільтр.