Pola Obliczeniowe w Kwerendach
Wyrażenia, funkcje warunkowe i formatowanie wyników w kwerendzie. Zadanie, w którym trzeba policzyć coś, czego nie ma wprost w tabeli.
1. Kiedy potrzebujesz pola obliczeniowego
Treść zadania prosi o wartość, której nie ma w żadnej kolumnie: wartość zamówienia, cenę po rabacie, wiek na podstawie daty urodzenia, marżę procentową. Wtedy tworzysz nową kolumnę wyliczaną w locie, bez zmieniania danych w tabeli.
SELECT nazwa,
cena,
ilosc,
cena * ilosc AS wartosc
FROM zamowienia;Nazwa nadana przez AS bywa wprost narzucona w poleceniu — wtedy musi zgadzać
się co do znaku. To najprostszy punkt do zdobycia i najgłupszy do stracenia.
2. Warunki wewnątrz zapytania
Gdy wynik zależy od warunku — na przykład rabat tylko dla zamówień powyżej progu — użyj konstrukcji warunkowej zamiast liczyć to ręcznie.
SELECT nazwa,
cena,
CASE
WHEN cena > 100 THEN cena * 0.9
ELSE cena
END AS cena_po_rabacie
FROM produkty;W programie Access ten sam efekt osiąga się funkcją IIf(warunek; wartość_gdy_prawda; wartość_gdy_fałsz).
Jeśli arkusz wskazuje konkretne środowisko, użyj składni tego środowiska.
3. Funkcje, które warto mieć pod ręką
ROUND(wyrażenie; 2)— zaokrąglenie do dwóch miejsc, częste przy kwotach.YEAR(data),MONTH(data)— wyciąganie części daty.LEN()lubLENGTH()— długość tekstu.CONCAT()albo operator sklejania — łączenie imienia i nazwiska w jedną kolumnę.
4. Gdzie najczęściej giną punkty
- Pole obliczeniowe w
WHEREpo aliasie. Warunek nie widzi nazwy nadanej przezAS— trzeba powtórzyć całe wyrażenie albo użyćHAVINGprzy grupowaniu. - Dzielenie przez zero, gdy w danych trafi się wartość pusta lub zerowa. Warto zabezpieczyć warunkiem.
- Brak zaokrąglenia tam, gdzie polecenie mówi o kwocie w złotych i groszach.
- Zmiana danych w tabeli zamiast policzenia ich w kwerendzie. Zadanie zwykle wymaga, żeby dane źródłowe pozostały nietknięte.
Nadal czujesz się niepewnie?
To tylko jeden z pewniaków. Na kursie przechodzimy przez nie wszystkie, krok po kroku, aż poczujesz ten spokój.
Pomóżcie mi zdać maturę!