1 Podzapytania – zapytania SELECT umieszczone w innym zapytaniu SELECT 01. podzapytanie z równością – podaj wszystkich pracowników zatrudniony w biurze przy ulicy Małej 63: SELECT Personel.pracownikNr, Personel.imię, Personel.nazwisko, Personel.stanowisko FROM Personel WHERE Personel.biuroNr=(SELECT biuroNr FROM Biuro WHERE ulica = "Mała 63"); 02. podzapytanie z funkcją agregującą – podaj wszystkich pracowników, których pensja jest wyższa od średniej; pokaż różnice między poszczególnymi pensjami a średnią: SELECT Personel.pracownikNr, Personel.imię, Personel.nazwisko, Personel.stanowisko, [pensja]-(SELECT AVG(pensja) FROM personel) AS różnica FROM Personel WHERE (((Personel.pensja)>(SELECT AVG(pensja) FROM Personel)));
21
Embed
Podzapytania – zapytania SELECT umieszczone w innym zapytaniu SELECT
Podzapytania – zapytania SELECT umieszczone w innym zapytaniu SELECT. 01 . podzapytanie z równością – podaj wszystkich pracowników zatrudniony w biurze przy ulicy Małej 63: SELECT Personel.pracownikNr, Personel.imię, Personel.nazwisko, Personel.stanowisko FROM Personel - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
1
Podzapytania – zapytania SELECT umieszczone w innym zapytaniu SELECT
01. podzapytanie z równością – podaj wszystkich pracowników zatrudniony w biurze przy ulicy Małej 63:
WHERE Personel.biuroNr=(SELECT biuroNr FROM Biuro WHERE ulica = "Mała 63");
02. podzapytanie z funkcją agregującą – podaj wszystkich pracowników, których pensja jest wyższa od średniej; pokaż różnice między poszczególnymi pensjami a średnią:
SELECT Personel.pracownikNr, Personel.imię, Personel.nazwisko, Personel.stanowisko, [pensja]-(SELECT AVG(pensja) FROM personel) AS różnica
FROM Personel
WHERE (((Personel.pensja)>(SELECT AVG(pensja) FROM Personel)));
FROM Biuro INNER JOIN Personel ON Biuro.biuroNr = Personel.biuroNr;
4
Pułapki w Access:
07 – Podaj nazwiska, stanowiska oraz wysokości pensji pracowników z biura o wpisanym numerze
Problem maski: \B000
wówczas zapisywane dane do tabeli 002
003
004 itd.
Powinna być maska w tabeli: \B000;0;_
Aby litera B była zapisywana razem z pozostałymi cyframi.
08 – informacje o nieruchomościach nadzorowanych przez pracownika
Inna sytuacja gdzie kryteria mogą być wpisywane również małymi literami.
5
Właściwości sprzężenia w kwerendzie:
09 – Obiekt Biuro nie pasuje do obiektu Personel (właściwości sprzężenia w kwerendzie nr 2)
SELECT Biuro.biuroNr, Biuro.miasto
FROM Biuro LEFT JOIN Personel ON Biuro.biuroNr = Personel.biuroNr
WHERE (((Personel.biuroNr) Is Null));
6
Funkcje agregujące i do jakich pól można ich użyć:
Wybierz Aby obliczyć Dopuszczalne typy danych
Suma Sumę wartości w polu. Liczba, Data/Godzina, Waluta i Autonumerowanie
Średnia Średnią z wartości w polu. Liczba, Data/Godzina, Waluta i Autonumerowanie
Minimum Najmniejszą wartość w polu. Tekst, Liczba, Data/Godzina, Waluta i Autonumerowanie
Maksimum Największą wartość w polu. Tekst, Liczba, Data/Godzina, Waluta i Autonumerowanie
Zlicz Liczbę wartości pola, z pominięciem wartości Null (pustych).
Tekst, Memo, Liczba, Data/Godzina, Waluta, Autonumerowanie, Tak/Nie i Obiekt OLE
OdchStd Odchylenie standardowe wartości w polu.
Liczba, Data/Godzina, Waluta i Autonumerowanie
Wariancja Wariancję wartości w polu. Liczba, Data/Godzina, Waluta i Autonumerowanie
7
Wybierz Aby
Grupuj według Określić grupy, dla których mają zostać przeprowadzone obliczenia. Aby na przykład obliczyć wartość sprzedaży według kategorii, należy wybrać opcję Grupuj według dla pola "NazwaKategorii".
Wyrażenie Utworzyć pole obliczeniowe zawierające w swoim wyrażeniu funkcję agregującą. Pole obliczeniowe tworzy się zazwyczaj wtedy, gdy w wyrażeniu jest kilka funkcji.
Gdzie Określić kryteria dla pola, które nie jest używane do zdefiniowania grupy. Jeśli opcja ta zostanie wybrana dla pola, Program Microsoft Access ukryje to pole w wynikach kwerendy przez wyczyszczenie pola wyboru Pokaż.
10a – liczba pracowników każdego z biur oraz ich sumaryczna pensja
Uwaga Funkcje agregujące nie uwzględniają w obliczeniach rekordów zawierających wartości puste (Null).
Również jeśli w wyrażeniu używany jest operator arytmetyczny (+, -, *, /) i jedno z pól w wyrażeniu ma wartość Null, wynik całego wyrażenia będzie Null.
Można przekształcić wartość Null w zero używając np.. funkcji Nz lub IIf.
8
Przykłady pracy z wartościami Null za pomocą pól obliczeniowych:
Wyrażenie:
BieżącyKraj: IIf(IsNull([Kraj]); " "; [Kraj])
Używa funkcji IIf i IsNull do wyświetlania pustego ciągu znaków w polu "BieżącyKraj", jeśli wartość w polu "Kraj" jest Null. Jeśli nie, wyświetlana jest wartość z pola "Kraj".
Używa funkcji IIf i IsNull do wyświetlania w polu "CzasDostawy" komunikatu "Znajdź brakującą datę" jeśli wartość w polu "DataWymagana" lub "DataWysyłki" jest wartością Null. Jeśli nie, wyświetlana jest różnica tych wartości.
W polu "SprzedażPółroczna" wyświetla sumę wartości w polach opisujących sprzedaż w pierwszym i drugim kwartale, wykorzystując funkcję Nz do przekształcania wartości Null w zero.
Wyświetla wartości pól "Miasto", "Region" i "KodPocztowy" oddzielone spacjami w polu "Addres2".
IDproduktu: Left([NazwaProduktu]; 1) Wykorzystuje funkcję Left do wyświetlania w polu "IDproduktu" pierwszego znaku wartości z pola "NazwaProduktu".
KodTypu: Right([KodMajątkowy];2) Używa funkcji Right do wyświetlania w polu "KodTypu" ostatnich dwóch znaków wartości z pola "KodMajątkowy".
NumerKierunkowy: Mid([Telefon];2;3) Używa funkcji Mid do wyświetlania w polu "NumerKierunkowy" trzech znaków poczynając od drugiego znaku wartości w polu "Telefon".
Inne przykłady operacji wykonywanych na wartościach tekstowych w polach obliczeniowych:
11
Left(wyr; n) Right(wyr; n) Mid(wyr; start; n)
Argument wyr może być nazwą pola (ujętą w nawiasy) lub wyrażeniem tekstowym; Argument n oznacza liczbę znaków, które mają zostać wyodrębnione, a argument start określa położenie pierwszego wyodrębnianego znaku.
Wartość w polu IDczęści Wyrażenie Zwraca
BA-7893-R12 Left([IDczęści];2) BA
BA-7893-R12 Right([IDczęści];3) R12
BA-7893-R12 Mid([IDczęści];4;4) 7893
11-pierwszy znak z numeru nieruchomości itd.
Wyrażenia wprowadzane są w komórce Pole w siatce projektu kwerendy.
12
Przykłady wyrażeń, w których jako kryteria zastosowano wartości tekstowe
NazwaFirmy >="N" Wyświetla zamówienia wysłane do firm, których nazwy zaczynają się na litery od N do Z.
IDzamówienia Right([OrderID]; 2)="99" Używa funkcji Right aby wyświetlić zamówienia, których IDzamówienia kończy się na 99.
NazwaFirmy Len([NazwaFirmy])>Val(30) Używa funkcji Len i Val, aby wyświetlić zamówienia wysłane do firm, których nazwy są dłuższe niż 30 znaków.
12a – nieruchomości przy ulicach od A do K
12b – właściciele nieruchomości o numerach końcowych 46 lub 87
12c – miejscowości o nazwach dłuższych niż 5 znaków
13
Przykłady zmieniania i obliczania dat w polach obliczeniowych:
Używa funkcji DatePart do wyświetlania w polu "RokZatrudnienia" roku, w którym został zatrudniony każdy z pracowników.
Date( )- 30 Używa funkcji Date do wyświetlania daty o 30 dni wcześniejszej od daty bieżącej.
14
Operacje na datach wykorzystywane w kryteriach:
Pole Wyrażenie Opis
DataWymagana Between Date( ) And DateAdd("m"; 3; Date( ))
Używa operatora Between...And i funkcji DateAdd i Date aby wyświetlić zamówienia, które mają zostać zrealizowane w ciągu trzech miesięcy od daty bieżącej.
DataZamówienia < Date( )- 30 Używa funkcji Date, aby wyświetlić zamówienia, które mają ponad 30 dni.
DataZamówienia Year([DataZamówienia])= 1996
Używa funkcji Year, aby wyświetlić zamówienia, które zostały złożone w roku 1996.
14a-nieruchomości których wynajęcie kończy się w ciągu 3 miesięcy
14b- nieruchomości których wynajęcie skończyło się więcej niż 30 dni temu
14c-nieruchomości, których wynajęcie skończyło się w 2004 roku
15
DataZamówienia DatePart("k"; [DataZamówienia])=4 Używa funkcji DatePart, aby wyświetlić zamówienia przypadające na czwarty kwartał.