1. Opis ogólny
2. Wywołanie zapytania Query
3. Funkcje, klawisze, relacje
3.1 Funkcje sterujące
3.2 Klawisze (przyciski)
Wybór z tabeli
Redagowanie (korekta)
3.3 Operatory relacji
4. Przykłady Query
5. Tabela warunków Query
6. Alerty. Warunki Query
7. Query w zestawieniach tabelarycznych
8. Uwagi i zastrzeżenia
9. Tematy powiązane
1. Opis ogólny
Query
Query, dosłownie: zapytanie, pojęcie stosowane w informatyce dla określenia
metody wyszukiwania informacji w bazach danych. Metoda polega na wskazaniu
warunków wyszukiwania (wybierania), np. wyszukanie faktur sprzedaży
o wartości netto powyżej 10 tys zł wystawionych od początku roku do dzisiaj.
Jako wynik zapytania otrzymuje się tę część zapisów znajdujących się w bazie danych,
które spełniają podany warunek. Dlatego mówi się o filtrowaniu danych a warunki
wyszukiwania (wybierania) nazywa się filtrami (filtrowanie danych).
(en: Data filtering, de: Filterung der Daten)
Warunki zapytań Query można zapamiętywać i wielokrotnie z nich korzystać.
Query zawęża widok na zgromadzone dane
Query pozwala zawężać (filtrować) przeglądane i drukowane dane (rekordy),
tak aby użytkownik widział tylko te dane, które go interesują.
Np. może oglądać karty tylko tych klientów, którzy zakupili towary
o wartości powyżej 10 tys. lub otrzymać zestawienie klientów, do których
nie wysłano e-maili marketingowych w ostatnich 6 miesiącach.
Query filtruje dane jednego zbioru (tabeli)
Każdy warunek query powiązany jest z konkretnym, jednym zbiorem danych,
np. z kartoteką odbiorców, dostawców, zbiorem faktur lub rejestrów kasowych.
Podczas definiowania warunku, program udostępnia nazwy techniczne i nazwy opisowe
kolumn (pól) w zbiorach (tabelach). Program korzysta ze słownika danych.
Baza danych. Słownik
Query można używać wielokrotnie
Warunki query można zapamiętać [F3] i używać powtórnie w miarę potrzeby [F2].
Można zbudować dowolną liczbę warunków query.
Query liczy rekordy (zapisy)
W Query można obliczyć liczbę rekordów spełniających warunek.
o--------------------------------------------------------------[X]o
| |
| Rekordy wg warunku: Wyświetl / Oblicz / Zrezygnuj (W/O/Z) W |
| ---o---- --o--- |
o----------------------- | ------ | --------------------------o
| |
v |
[W] Wyświetla rekordy |
spełniające warunek |
|
v
[O] Oblicza liczbę rekordów
Podaje np. Znaleziono: 20 Przeszukano: 89 671
Przykład
--------
Ustalanie liczby indeksów KIM, które mają kategorię ABC = [A]
Funkcja: MG > Kartoteki > Przeglądanie wg Query [MG_KKI50]
Warunek: [Kategoria ABC] jest = 'A'
[W] Wyświetl
Można oznaczać [*] rekordy spełniające warunek
W zbiorach (tabelach), na które nałożone są warunki, można oznaczać [*]
(en: Tagging) indywidualnie i globalnie poszczególne rekordy (karty).
Na tak oznaczonych rekordach, można następnie wykonywać operacje seryjne,
np. wysyłać e-maile do oznaczonych odbiorców, wysyłać oznaczone karty KIM
do plików CSV, itp.
Oznaczanie rekordów [*]
Można korygować rekordy spełniające warunek
W zbiorach (tabelach), na które nałożone są warunki, można wpisywać nowe
lub korygować dotychczasowe dane. Zapisy będą w rekordach spełniających warunki.
Np. wpisywanie kodów GTU do wskazanych kart KIM.
MG > Pomocnicze > Kod GTU do KIM wg Query [MG_PGTU0].
Podobne zadanie, ale w bardziej ogólnej formule, wykonuje funkcja:
PM > Globalne zmiany w zbiorach [PM_PGZ40].
Globalne zmiany pól w bazie danych
Liczba wystąpień wartości pól
Podobne obliczenia można wykonać w funkcji:
PM > Statystyki > Liczba wystąpień wartości pól [PM_ZST40]
Zestawienie pokazuje liczbę wystąpień wartości pól, tu: Kategoria ABC
System: MG
Zbiór: 229 Indeksy KIM MG
Pole: ABC Kategoria ABC
-------------------------------------
ABC Liczba kart KIM
----------------- ---------------
B Kategoria B 9278 88.4 %
D Poza kategorią 1029 9.8 %
A Kategoria A 165 1.6 %
C Kategoria C 26 0.2 %
-------------------------------------
Razem: 10498 100.0 %
-------------------------------------
Statystyki zbiorów danych
2. Wywołanie zapytania Query
Okno budowania warunków (zapytanie) pokazuje się po wybraniu [B] z menu:
--------------------
[W] Wszystkie
[B] Wybrane wg Query
--------------------
[W] Wszystkie zapisy
----------------
Uwzględnione będą wszystkie zapisy (wiersze) znajdujące się
w tabeli bazy danych.
[B] Wybrane zapisy - zapytanie Query by Example
-------------------------------------------
Można utworzyć zapytanie, którego wynikiem jest lista wierszy
spełniających warunki zapytania.
Warunki zapytania odnoszą się do pól (kolumn) aktywnej tabeli
(zbioru) danych. Zapytanie może składać się z wielu warunków.
Zapytanie można zapamiętać do późniejszego użycia.
3. Funkcje, klawisze, relacje
3.1 Funkcje sterujące
* Porównaj z wartością
----------------------
Program porównuje dane pole z konkretną wartością, np. USLUGA, 40, 20xx.09.29
* Porównaj z zawartością pola
-----------------------------
Program porównuje wartości znajdujące się w dwóch polach
* Łącznik [i] oraz [lub]
------------------------
Łączy dwa warunki
A [i] B - oba warunki A i B muszą być spełnione jednocześnie
A [lub] B - wystarczy, że spełniony będzie jeden z warunków,
ale mogą być spełnione oba warunki
* Grupy (nawiasy grupujące)
---------------------------
Wskazują kolejność wykonywania warunków.
Query może zawierać do 10 warunków.
Gdy występują łączniki [i] oraz [lub] to należy użyć nawiasów
do wskazania kolejności sprawdzania warunków.
Łącznik [i] ma wyższy priorytet niż [lub].
Dlatego wyrażenia, które są połączone [lub] powinny być zgrupowane.
Poniżej są przykłady, które ilustrują wpływ łączników [i], [lub]
i grupowania (nawiasów) na wynik Query.
3.2 Klawisze (przyciski)
Wybieranie z tabeli zapamiętanych warunków Query
o-- Zapytania -------------------------------------------------------o
| - --- Nazwa -------------- Kartoteka (zbiór) ------ - Od dnia- Op |
| * Rodzaj = 03 Indeksy KIM 20xx.01.19 SP |
| Opakowania Indeksy KIM 20xx.01.10 AA |
| Produkt Indeksy KIM 20xx.01.10 AA |
o--------------------------------------------------------------------o
| F3-szukaj, F6-zablokuj/odblokuj, F9-usuń, F10-pokaż, Enter-wybór |
o----------- ----o--------------- -----------------------------------o
^ |
| v
| F6-zablokuj/odblokuj
|
[*] zablokowane
F6-zablokuj: blokuje zapytanie przed zmianą przez innego operatora
Zapewnia prywatność zapytania
Bezpieczeństwo. Mechanizmy
Operator, właściciel zapytania, może zablokować je przed zmianą przez
innego operatora. Właścicielem zapytania jest ten operator,
który je utworzył lub ostatnio poprawiał.
Kiedy warto zablokować zapytanie przed zmianą ?
Zapytania mogą być używane przez programy pracujące automatycznie.
Spełniają kluczową rolę w filtrowaniu danych.
Blokowanie zabezpiecza przed zmianą warunków przez innych użytkowników,
nieświadomych znaczenia zapytań.
Automatyzacje w Trawers ERP
Redagowanie linii warunku Query
o-- Warunek ---------------------------------------------------------o
| [Nazwa indeksu] zawiera tekst 'USLUGA' |
| |
o--------------------------------------------------------------------o
|F2-wybierz, F3-zapisz, F7-popraw, F8-dopisz, F9-usuń, P-przenieś |
o--------------------------------------------------------------------o
F2 Wybiera warunek
F3 Zapisuje warunek
F7 Rozpoczyna poprawianie podświetlonej linii
F8 Dopisuje nową linię
F9 Usuwa podświetloną linię
^F10 [P] Przemieszcza linię w inne, wskazane miejsce
3.3 Operatory relacji
W poszczególnych liniach Query definiuje się warunki, które muszą być spełnione,
aby rekord został wybrany ze zbioru danych,
np. pole 'Nazwa indeksu' powinno zawierać tekst: 'usługa'.
Wyrażenie określające warunek, to wyrażenie porównujące zawartość pola w zbiorze
z konkretną wartością lub zawartość pola z zawartością innego pola w zbiorze.
Metodę porównania określa operator relacji (en: Relational operator).
Operator relacji
Ogólnie: operator relacji, to jest konstrukcja w języku programowania, która bada
relację (związek) między dwoma argumentami. W odpowiedzi wskazuje czy jest związek
czy nie ma związku. Tu: Czy w polu 'Nazwa indeksu' jest tekst 'usługa'.
Operatory relacji: Pola liczbowe, znakowe, daty
Operatory relacji zależą od typu pól: liczbowe (numeryczne), znakowe, pola daty.
Pola liczbowe (numeryczne), znakowe (tekstowe) i daty
-----------------------------------------------------
jest = (równy) (en: Equals)
nie jest = (równy) (en: Does Not Equal)
jest > (większy) (en: Is Greater Than)
jest >= (większy lub równy) (en: Is Greater Than or Equal To)
jest < (mniejszy) (en: Is Less Than)
jest <= (mniejszy lub równy) (en: Is Less Than or Equal To)
jest z zakresu (od... do...)
nie jest z zakresu (od... do...)
Pola znakowe (tekstowe)
-----------------------
zawiera tekst (...) (en: Contains
nie zawiera tekstu (...) (en: Does Not contain
jest zawarty w tekscie (...)
nie jest zawarty w tekscie (...)
jest wypełniony (en: In Not Empty)
nie jest wypełniony (en: Is Empty)
rozpoczyna się (...) (en: Starts With)
nie rozpoczyna się (...)
zawiera tekst (od pozycji)
wyrażenie regularne (regex) (en: Regex)
Ciągi znaków, które pozwalają na wyszukiwanie w tekstach
wystąpień wzorca, np.
a.a --> adaptacja wymiana zapasami
t{2} --> motto Scott
Wyrażenia regularnePola daty
---------
jest = (dacie aktualnej)
nie jest = (od daty aktualnej)
jest > (od daty aktualnej)
jest >= (od daty aktualnej)
jest < (od daty aktualnej)
jest <= (od daty aktualnej)
jest wypełniona
nie jest wypełniona
jest z wczoraj
jest jutro
jest z tego tygodnia
jest z zeszłego tygodnia
jest z kolejnego tygodnia
jest z tego miesiąca
jest z zeszłego miesiąca
jest z kolejnego miesiąca
jest z tego roku
jest sprzed (...) dni
jest z ostatnich (...) dni
nastąpi w ciągu (...) dni (od daty aktualnej)
jest (...) dni od daty aktual
jest ponad (...) dni od daty (od daty aktualnej)
4. Przykłady Query
Wyświetlenie odbiorców, którzy mają w nazwie: S.A.
NA > Odbiorcy > Query Przeglądanie i oznaczanie [NA_OSZ30]
F8-dopisz:
[Grupa]: pole bez nawiasów
[Nazwy pól na00od%f]: Nazwa kontrahenta
[Relacja]: 'zawiera tekst (...)'
[Porównaj z wartością]:
[Wartość]: 'S.A.'
[Grupa]: pole bez nawiasu
F3-zapisz
--- Warunek ----------------------------
[Nazwa kontrahenta] zawiera tekst 'S.A.'
----------------------------------------
Rezultat:
---------
Wyświetlają się wszyscy kontrahenci, którzy mają w nazwie: S.A.
Wielkość liter nie ma znaczenia.
Wyświetlenie odbiorców, którzy mają w nazwie 'S.A.' lub 'Sp. z o.o.'
NA > Odbiorcy > Query Przeglądanie i oznaczanie [NA_OSZ30]
F8-dopisz:
[Grupa]: pole bez nawiasów
[Nazwy pól na00od%f]: 'Nazwa kontrahenta'
[Relacja]: 'zawiera tekst (...)'
[Porównaj z wartością]:
[Wartość]: 'S.A.'
[Grupa]: pole bez nawiasu
F8-dopisz:
[Łącznik]: 'lub'
[Grupa]: pole bez nawiasów
[Nazwy pól na00od%f]: 'Nazwa kontrahenta'
[Relacja]: 'zawiera tekst (...)'
[Porównaj z wartością]:
[Wartość]: 'SP. Z O.O.'
[Grupa]: pole bez nawiasu
F3-zapisz
--- Warunek --------------------------------------
[Nazwa kontrahenta] zawiera tekst 'S.A.'
lub [Nazwa kontrahenta] zawiera tekst 'SP. Z O.O.'
--------------------------------------------------
Rezultat:
---------
Wyświetlają się kontrahenci, którzy mają w nazwie: S.A. lub Sp. z o.o.
Wielkość liter nie ma znaczenia.
Wyświetlenie odbiorców, których saldo należności jest większe od zera
NA > Odbiorcy > Query Przeglądanie i oznaczanie [NA_OSZ30]
F8-dopisz:
[Grupa]: pole bez nawiasów
[Nazwy pól na00od%f]: 'Saldo kontrahenta w PLN'
[Relacja]: 'jest > (większy)'
[Porównaj z wartością]:
[Wartość]: 0.00
[Grupa]: pole bez nawiasu
F3-zapisz
--- Warunek --------------------------
[Saldo kontrahenta w PLN] jest > 0.00
--------------------------------------
Rezultat:
---------
Wyświetlają się wszyscy odbiorcy, których saldo jest większe niż: 0.00
Wyświetlenie odbiorców, którzy są na etapie [40] Prezentacja oferty
NA > Odbiorcy > Query Przeglądanie i oznaczanie [NA_OSZ30]
F8-dopisz:
[Grupa]: pole bez nawiasów
[Nazwy pól na00od%f]: 'Kontrakt - etap w cyklu sprzed'
[Relacja]: 'jest = (równy)'
[Porównaj z wartością]:
[Wartość]: '40'
[Grupa]: pole bez nawiasu
F3-zapisz
--- Warunek --------------------------------
[Kontrakt - etap w cyklu sprzed] jest = '40'
--------------------------------------------
Rezultat:
---------
Wyświetlają się kontrahenci na etapie [40].
Grupowanie warunków (nawiasy)
Query może zawierać do 10 warunków.
Jeżeli występują łączniki [i] oraz [lub] to należy użyć nawiasów Grupy do wskazania
kolejności sprawdzania warunków.
Łącznik [i] ma wyższy priorytet niż [lub].
Dlatego wyrażenia, które są połączone [lub] powinny być zgrupowane.
Poniższe przykłady ilustrują wpływ łączników i grupowania na wynik Query.
MG > Kartoteki > Przeglądanie wg Query [MG_KKI50]
Niech:
[A] oznacza warunek: [Indeks] zawiera 'USLUGA'
[B] oznacza warunek: [Wyróżnik] = '10'
[C] oznacza warunek: [Odmiana] = '20'
Można utworzyć następujące Query:
1) A i B lub C : [Indeks] zawiera 'USLUGA' i [Wyróżnik] = '10' lub [Odmiana] = '20'
2) (A i B) lub C : ([Indeks] zawiera 'USLUGA' i [Wyróżnik] = '10') lub [Odmiana] = '20'
3) A i (B lub C) : [Indeks] zawiera 'USLUGA' i ([Wyróżnik] = '10' lub [Odmiana] = '20')
4) A lub (B i C) : [Indeks] zawiera 'USLUGA' lub ([Wyróżnik] = '10' i [Odmiana] = '20')
5) A lub B lub C : [Indeks] zawiera 'USLUGA' lub [Wyróżnik] = '10' lub [Odmiana] = '20'
6) A i B i C : [Indeks] zawiera 'USLUGA' i [Wyróżnik] = '10' i [Odmiana] = '20'
Niech kartoteka KIM zawiera indeksy:
[Indeks] [Wyróżnik] [Odmiana] [Ujęte w Query Nr]
TOWAR-001 55 33
TOWAR-002 55 20 1 2 5
TOWAR-001 10 33 5
TOWAR-003 10 20 1 2 4 5
A-USLUGA-4 55 33 4 5
A-USLUGA-3 55 20 1 2 3 4 5
USLUGA-02 10 33 1 2 3 4 5
USLUGA-01 10 20 1 2 3 4 5 6
Kolumna [Ujęte w Query Nr] pokazuje, które indeksy zostaną ujęte w powyższych Query.
5. Tabela warunków Query
Zapytania wg warunków zapisane są w jednej tabeli (zbiorze).
Zapisy mają identyfikatory: system, np. MG, kartoteka, np. kartoteka KIM.
W konkretnym kontekście pracy, program wyświetla zapytania należące
do tego kontekstu. Np. wyszukiwanie kart KIM wg warunku, podczas tworzenia
zestawień o stanie zapasów magazynowych.
Przeglądanie tabeli
Zawartość całej tabeli zapytań Query można przeglądać:
AD > Trawers > Tabele. Wzorce, Query, Załączniki.. [AD_TAT20]
-------------------------------------------------------------------
System Operator Kartoteka Nazwa zapytania Query
-- -- ----------------------- ----------------------------
NA BR 199 Kartoteka odbiorców Etap 40.60 prezent,analizy
RK AN 114 Kontakty bieżące Kontakty operatora AN
NA IK 199 Kartoteka odbiorców Partner PT autoryzowany
RK RK 114 Kontakty bieżące Ost. kontakt < 20xx.01.01
* PL JD 156 Kartoteka kadrowa Stanowisko: Handlowcy
o --------------- --------o---------- -----------------------------
| |
^ Warunek powiązany
| ze zbiorem, np.
| Kartoteka odbiorców
o
Warunek może zmienić tylko ten
operator, który go utworzył
Admin też może zmienić
6. Alerty. Warunki Query
Alert
Alert (ogólnie), to jest sygnał o wystąpieniu monitorowanego zjawiska.
Alert w programie Trawers ERP, to jest mechanizm reagowania na wystąpienie
określonych zdarzeń lub spełnienie ustalonych warunków.
Warunki Query
W tabeli alertów [327 Alerty Definicje] ustala się warunki, które uaktywniają
wysłanie raportu do podanych adresatów.
Warunki w tabeli alertów buduje się wg mechanizmu Query.
Patrz szczegóły:
Alerty i raportowanie. Opis
7. Query w zestawieniach tabelarycznych
W zestawieniach tabelarycznych dane zgromadzone w kartotekach i zbiorach
transakcyjnych (dokumentach) można przeglądać w formie matrycy, z główką
i boczkiem i danymi na ich przecięciu.
Przezentowane dane można zawężać (filtrować) przy użyciu warunków Query.
Zastosowane warunki można zapamętywać i powtórnie używać.
Patrz szczegóły:
Tabelaryczne. Opis ogólny
8. Uwagi i zastrzeżenia
* Query pozwala zawężać (filtrować) przeglądane dane, tak aby użytkownik
widział tylko te dane, które go interesują
* Metoda wyszukiwania wg Query jest przydatna gdy warunek (filtr) nakłada się
na kartotekę zbudowaną z jednolitych rekordów, np. odbiorcy, dostawcy, indeksy KIM.
Filtr, np. [nazwa zawiera znaki XYZ]
* W przypadku zbiorów (tabel) o złożonej strukturze, np. kartoteka rozrachunków
proste filtry nie wystarczą. Trzeba znać strukturę zbioru i odpowiednio
budować filtry złożone.
Szukanie w bazie danychBaza danych. Słownik
Np. aby z kartoteki należności wybrać rachunki przewidziane do zapłaty
na rachunek bankowy [1] trzeba zbudować filtr:
[Nr rach bank (NA:nasz ZO:obcy)] jest = '1' lub
[Do rozlicz System] nie jest = 'NA'
Gdyż rachunki: Do rozliczenia mogą powstać także w systemie KB (nadpłata)
nr rach = [ ] a nie powinny być pominięte w obliczeniach należności.
W takich sytuacjach można stosować generatory raportów, np. RaportyXML
RaportyXML Generator w PM