Główna / Pomoc / Edytor zapytań SQL – możliwości

Edytor zapytań SQL – możliwości

Edytor zapytań SQL – możliwości

Edytor zapytań SQL oferuje dodatkowe możliwości, m.in.:

  • możliwość umieszczania komentarzy w tekście SQL,
  • możliwość używania parametrów w zapytaniu
  • możliwość deklarowania opisów parametrów i ich wartości domyślnych

Możliwości te można wykorzystać m.in. przy dodawaniu skryptów SQL jako opcji w menu “Narzędzia”.

1. Komentarze w tekście SQL

Komentarze w tekście zapytania umieszcza się za pomocą nawiasów klamrowych { }, np.

select * from Faktury
{ wybierz tylko faktury z 2010 roku : }
where extract (year from DataWystawienia)=2010


2. Parametry w tekście SQL

Parametry zapytania, o których wartość program odpyta przed wykonaniem zapytania oznacza się przez @numer, np. @1, @2 itd. :

select * from Faktury
{ wybierz tylko faktury z 2010 roku : }
where extract (year from DataWystawienia)=@1

Ten sam parametr może wystąpić w treści zapytania wielokrotnie. Przed wykonaniem zapytania program wyświetli okienko z zapytaniem o wartości parametrów, tutaj @1 :

3. Opisy parametrów

W komentarzu umieszczonym na samym początku zapytania (proszę zwrócić na obowiązkowy znak $ za nawiasem klamrowym otwierającym komentarz) można zadać opisy tekstowe poszczególnych parametrów zapytania :

{$ @1=Podaj rok : }
select * from Faktury
{ wybierz tylko faktury z 2010 roku : }
where extract (year from DataWystawienia)=@1

Zadeklarowany opis program wyświetla przy odpytywaniu o wartość parametru :

4. Wartości domyślne parametrów

W komentarzu definiującym parametry (opisanym powyżej) można również umieścić domyślne wartości parametrów zapytania. Będą się one pojawiały w oknie wpisania wartości parametru, zmniejszając ryzyko pomyłki (przez np. niewłaściwy format wpisu) lub podpowiadając najczęściej wykorzystywane wartości.

Parametr może mieć jedną lub wiele domyślnych wartości. Domyślne wartości parametrów wstawia się po opisie parametrów, rozdzielając je znakiem ‘|’ (pionowa kreska):

{$ @1=Podaj rok : |'01/01/2010'|'01/01/2011'}
select * from Faktury
{ wybierz tylko faktury z 2010 roku : }
where extract (year from DataWystawienia)=@1

Jeśli parametr ma jedną wartość, wstawiana jest ona automatycznie do pola, w które użytkownik wpisuje wartość parametru (można ją oczywiście zmienić). Jeśli ma wiele, dostępne są one w rozwijanym menu:

5. Wartości domyślne parametrów pobierane z zapytania SQL

Wartości domyślne parametrów można także podać korzystając z zapytania SQL. Zapytanie SQL należy podać w nawiasach klamrowych. W zapytaniu tym można dodatkowo wykorzystać podane wcześniej parametry.

W podanym niżej zapytaniu SQL przygotowanym dla bazy Faktur VAT w wersji dla FirebirdSQL (zestawienie faktur) program proponuje wybór zakresu dat z ostatniego miesiąca:

{$ @1=Podaj datę początkową:|{select cast(current_timestamp – extract(day from current_timestamp) – extract(day from current_timestamp – extract(day from current_timestamp))+1 as date) from rdb$database}
@2=Podaj datę końcową:|{select cast('@1' as date)- EXTRACT(DAY FROM cast('@1' as date)) + 32 – EXTRACT(DAY FROM cast('@1' as date)- EXTRACT(DAY FROM cast('@1' as date)) + 32) from rdb$database}}
select Numer_Proforma as Numer_Faktury, Nazwa_Sprzedawcy, Nazwa_Nabywcy, Skrot_Kraju as Kraj_Nabywcy, Data_Wystawienia, Kurs, Do_Zaplaty from DaneFak
where Data_Wystawienia between '@1' and '@2'

Z kolei w przykładzie poniżej, przygotowanym dla bazy MSSQL, przy wykonaniu zapytania program odpyta najpierw o datę początkową raportu i zaproponuje pierwszy dzień zeszłego miesiąca. Następnie odpytując o datę końcową program zaproponuje ostatni dzień miesiąca z daty początkowej, którą wybrał użytkownik. Następnie program spyta o nadawcę, ale w liście wyboru podpowie tylko tych nadawców, których dokumenty zawierają się w podanym wcześniej zakresie dat:

Zapytanie wygląda tak:

{$ @1=Podaj datę pocz.: |{select dateadd(month,-1,dateadd(day,1-day(current_timestamp), CONVERT(CHAR(8),CURRENT_TIMESTAMP,112)))}
@2=Podaj datę kon.: |{select dateadd(day,-1,dateadd(month,1,'@1'))}
@3=Wybierz nadawcę:|{select distinct nadawca from sadue where datadekl between '@1' and '@2'}}
select * from sadue where datadekl between '@1' and '@2' and nadawca='@3'

Dział pomocy