Zapytania zaawansowane
Edalitics szczególną uwagę przykłada do łatwości obsługi i abstrakcji wiedzy technicznej wymaganej do wykonywania zapytań w bazie danych. Czasami jednak konieczne jest skorzystanie z mocy SQL, aby wykonać bardziej złożone zapytania. W tym celu edalitics udostępnia zaawansowanym użytkownikom „Tryb SQL”. Aby uzyskać dostęp do tego trybu, należy aktywować przełącznik znajdujący się w prawym górnym rogu okna definicji zapytania w konfiguracji panelu (1)
Aktywując ten przełącznik, można przejść z „Trybu EDA”, domyślnego trybu edalitics, do „Trybu SQL”, w którym zaawansowani użytkownicy będą mogli definiować i wykonywać natywne zapytania SQL bezpośrednio do bazy danych.
Po aktywowaniu przełącznika „Trybu SQL” użytkownik będzie mógł zdefiniować swoje dowolne zapytanie SQL w przeznaczonym do tego polu tekstowym (2) oraz wskazać jedną z głównych tabel modelu danych, na której oparte jest zapytanie (3).
Zapytania: są to dowolne natywne zapytania SQL, przy uwzględnieniu następujących ograniczeń:
- Zapytania muszą dotyczyć tego samego schematu bazy danych, na którym tworzony jest raport. Nie można łączyć różnych schematów baz danych. Jeśli potrzebne są tabele z różnych schematów, zalecamy utworzenie widoków.
- Dla tabel należy stosować aliasy. Innymi słowy, zapytania muszą być zdefiniowane według poniższej przykładowej struktury: „select a.field1, a.field2 from table a”.
Aby ułatwić zaawansowaną pracę z zapytaniami SQL, na tym samym ekranie dostępna jest pomoc (3), która przypomina:
- Ogólne zalecenia
- Jak powiązać filtry raportu z naszym zapytaniem SQL
- Przykłady użycia
Po zdefiniowaniu naszego zapytania SQL (2) i wskazaniu tabeli głównej, możemy je już wykonać i używać normalnie, tak jak każde inne zapytanie z dowolnego innego panelu.
Natywne zapytania SQL są dopasowywane przez edalitics, a ewentualne filtry dostępu do danych, które mogą istnieć w modelu, na którym oparty jest raport, są do nich wstrzykiwane.
Jeśli chcesz powiązać zapytanie z filtrami raportu, musisz:
- W tym celu wystarczy dodać: AND ${alias_table.columna_filtrada} w klauzuli ‘WHERE’ zapytania w miejscu, w którym chcesz wstrzyknąć filtr
- Jeśli nie dodałeś jeszcze żadnej klauzuli WHERE, dodaj ją do zapytania i wykonaj niezbędne złączenia (join), wraz z filtrem w formacie ${alias_table.column_filtered}
- Jeśli tabela, po której filtrujemy, nie występuje w zapytaniu, pamiętaj, że musisz dodać niezbędne klauzule JOIN, aby powiązać tabelę filtra z zapytaniem
Samouczek wideo
Dział zatytułowany „Samouczek wideo”Przykłady
Dział zatytułowany „Przykłady”Oto kilka przykładów:
- Proste zapytanie:
SELECT c.customername FROM CUSTOMERSc
-
Zapytanie z powiązanymi filtrami raportu:
- Mamy w raporcie filtr dla pola ‘city’ tabeli CUSTOMERS:
-
Zapytanie bez powiązanych filtrów:
SELECT c.customername FROM CUSTOMERSc WHERE c.customername IN (‘Julia’, ‘John’)
-
Zapytanie z powiązanymi filtrami:
SELECT c.customername FROM CUSTOMERSc WHERE c.customername IN (‘Julia’, ‘john’) AND ${c.city}
-
- Mamy w raporcie filtr dla pola ‘city’ tabeli CUSTOMERS:
-
Mamy w raporcie filtr dla pola ‘office_id’ tabeli OFFICES
-
Zapytanie bez powiązanych filtrów:
SELECT e.employee_name FROM EMPLOYEE e WHERE e.employee_name IN (‘Julia’, ‘John’)
-
Zapytanie z powiązanymi filtrami: SELECT e.employee_name FROM EMPLOYEE e INNER JOIN OFFICES or ON o.office_id = e.office_id WHERE e.employee_name IN (‘Julia’, ‘John’) AND ${o.office_id}
-

