Podzapytania zapytania SELECT umieszczone w innym zapytaniu SELECT

  • Slides: 21
Download presentation
Podzapytania – zapytania SELECT umieszczone w innym zapytaniu SELECT 01. podzapytanie z równością –

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. pracownik. Nr, Personel. imię, Personel. nazwisko, Personel. stanowisko FROM Personel WHERE Personel. biuro. Nr=(SELECT biuro. Nr 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. pracownik. Nr, 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))); 1

03. podzapytania zagnieżdżone – powtórzenia właścicieli nieruchomości: SELECT Nieruchomość. właściciel. Nr, Nieruchomość. nieruchomośćNr, Nieruchomość.

03. podzapytania zagnieżdżone – powtórzenia właścicieli nieruchomości: SELECT Nieruchomość. właściciel. Nr, Nieruchomość. nieruchomośćNr, Nieruchomość. miasto, Nieruchomość. ulica FROM Nieruchomość WHERE (((Nieruchomość. właściciel. Nr) IN (SELECT [właściciel. Nr] FROM [Nieruchomość] AS Tmp GROUP BY [właściciel. Nr] HAVING Count(*)>1 ))) ORDER BY Nieruchomość. właściciel. Nr; 04. zastosowanie ANY / SOME – znajdź wszystkich pracowników, którzy mają pensję wyższą niż przynajmniej jeden pracownik biura o numerze B 003 SELECT Personel. pracownik. Nr, Personel. imię, Personel. nazwisko, Personel. stanowisko, Personel. pensja FROM Personel WHERE pensja > SOME (SELECT pensja FROM Personel WHERE biuro. Nr="B 003"); 2

05. zastosowanie ALL – znajdź wszystkich pracowników, którzy mają pensję wyższą niż pensja każdego

05. zastosowanie ALL – znajdź wszystkich pracowników, którzy mają pensję wyższą niż pensja każdego z pracowników biura o numerze B 003 SELECT Personel. pracownik. Nr, Personel. imię, Personel. nazwisko, Personel. stanowisko, Personel. pensja FROM Personel WHERE. pensja>ALL (SELECT pensja FROM Personel WHERE biuro. Nr="B 003"); Kwerendy z odnośnikami 06. Wpisywanie danych pracowników z uzupełnieniem danych o Biurze: SELECT Personel. pracownik. Nr, Personel. imię, Personel. nazwisko, Personel. stanowisko, Personel. płeć, Personel. data. Ur, Personel. pensja, Personel. biuro. Nr, Biuro. ulica, Biuro. miasto FROM Biuro INNER JOIN Personel ON Biuro. biuro. Nr = Personel. biuro. Nr; 3

Pułapki w Access: 07 – Podaj nazwiska, stanowiska oraz wysokości pensji pracowników z biura

Pułapki w Access: 07 – Podaj nazwiska, stanowiska oraz wysokości pensji pracowników z biura o wpisanym numerze Problem maski: B 000 wówczas zapisywane do tabeli 002 003 004 itd. Powinna być maska w tabeli: B 000; 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. 4

Właściwości sprzężenia w kwerendzie: 09 – Obiekt Biuro nie pasuje do obiektu Personel (właściwości

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. biuro. Nr, Biuro. miasto FROM Biuro LEFT JOIN Personel ON Biuro. biuro. Nr = Personel. biuro. Nr WHERE (((Personel. biuro. Nr) Is Null)); 5

Funkcje agregujące i do jakich pól można ich użyć: Wybierz Aby obliczyć Dopuszczalne typy

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 Odch. Std Odchylenie standardowe wartości w polu. Liczba, Data/Godzina, Waluta i Autonumerowanie Wariancja Wariancję wartości w polu. Liczba, Data/Godzina, Waluta i Autonumerowanie 6

Wybierz Aby Grupuj według Określić grupy, dla których mają zostać przeprowadzone obliczenia. Aby na

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 "Nazwa. Kategorii". 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ż. 10 a – 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. 7

Przykłady pracy z wartościami Null za pomocą pól obliczeniowych: Wyrażenie: Bieżący. Kraj: IIf(Is. Null([Kraj]);

Przykłady pracy z wartościami Null za pomocą pól obliczeniowych: Wyrażenie: Bieżący. Kraj: IIf(Is. Null([Kraj]); " "; [Kraj]) Używa funkcji IIf i Is. Null do wyświetlania pustego ciągu znaków w polu "Bieżący. Kraj", jeśli wartość w polu "Kraj" jest Null. Jeśli nie, wyświetlana jest wartość z pola "Kraj". Czas. Dostawy: IIf(Is. Null([Data. Wymagana] - [Data. Wysyłki]); "Znajdź brakującą datę"; [Data. Wymagana] - [Data. Wysyłki]) Używa funkcji IIf i Is. Null do wyświetlania w polu "Czas. Dostawy" komunikatu "Znajdź brakującą datę" jeśli wartość w polu "Data. Wymagana" lub "Data. Wysyłki" jest wartością Null. Jeśli nie, wyświetlana jest różnica tych wartości. 8

SprzedażPółroczna: Nz([Sprz 1 Kwart]; 0) + Nz([Sprz 2 Kwart]; 0) W polu "SprzedażPółroczna" wyświetla

SprzedażPółroczna: Nz([Sprz 1 Kwart]; 0) + Nz([Sprz 2 Kwart]; 0) 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. IIf(Is. Null([Cena. Jednostkowa]); 0 ; [Cena. Jednostkowa]) Zmienia wartość Null na zero (0) w polu "Cena. Jednostkowa". 10 b – liczba pracowników każdego z biur oraz ich sumaryczna pensja Baza: Null. mdb 9

Inne przykłady operacji wykonywanych na wartościach tekstowych w polach obliczeniowych: Wyrażenie ImięINazwisko: [Imię] &

Inne przykłady operacji wykonywanych na wartościach tekstowych w polach obliczeniowych: Wyrażenie ImięINazwisko: [Imię] & " " & [Nazwisko] Opis Wyświetla wartości pól "Imię" i "Nazwisko" oddzielone spacją w polu "ImięINazwisko". Addres 2: [Miasto] & " " & [Region] & " Wyświetla wartości pól "Miasto", "Region" i " & [Kod. Pocztowy] "Kod. Pocztowy" oddzielone spacjami w polu "Addres 2". IDproduktu: Left([Nazwa. Produktu]; 1) Wykorzystuje funkcję Left do wyświetlania w polu "IDproduktu" pierwszego znaku wartości z pola "Nazwa. Produktu". Kod. Typu: Right([Kod. Majątkowy]; 2) Używa funkcji Right do wyświetlania w polu "Kod. Typu" ostatnich dwóch znaków wartości z pola "Kod. Majątkowy". Numer. Kierunkowy: Mid([Telefon]; 2; 3) Używa funkcji Mid do wyświetlania w polu "Numer. Kierunkowy" trzech znaków poczynając od drugiego znaku wartości w polu "Telefon". 10

Wyrażenia wprowadzane są w komórce Pole w siatce projektu kwerendy. Left(wyr; n) Right(wyr; n)

Wyrażenia wprowadzane są w komórce Pole w siatce projektu kwerendy. 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 -R 12 Left([IDczęści]; 2) BA BA-7893 -R 12 Right([IDczęści]; 3) R 12 BA-7893 -R 12 Mid([IDczęści]; 4; 4) 7893 11 -pierwszy znak z numeru nieruchomości itd. 11

Przykłady wyrażeń, w których jako kryteria zastosowano wartości tekstowe Nazwa. Firmy >="N" Wyświetla zamówienia

Przykłady wyrażeń, w których jako kryteria zastosowano wartości tekstowe Nazwa. Firmy >="N" Wyświetla zamówienia wysłane do firm, których nazwy zaczynają się na litery od N do Z. IDzamówienia Right([Order. ID]; 2)="99" Używa funkcji Right aby wyświetlić zamówienia, których IDzamówienia kończy się na 99. Nazwa. Firmy Len([Nazwa. Firmy])>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. 12 a – nieruchomości przy ulicach od A do K 12 b – właściciele nieruchomości o numerach końcowych 46 lub 87 12 c – miejscowości o nazwach dłuższych niż 5 znaków 12

Przykłady zmieniania i obliczania dat w polach obliczeniowych: Wyrażenie Opis Czas. Dostawy: Date. Diff("d";

Przykłady zmieniania i obliczania dat w polach obliczeniowych: Wyrażenie Opis Czas. Dostawy: Date. Diff("d"; [Data. Zamówienia]; [Data. Wysyłki]) Używa funkcji Date. Diff do wyświetlania w polu "Czas. Dostawy" liczby dni między datą zamówienia i datą wysyłki. Rok. Zatrudnienia: Date. Part("rrrr"; [Data. Zatrudnienia]) Używa funkcji Date. Part do wyświetlania w polu "Rok. Zatrudnienia" 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. Year(date) Month(date) Day(date) Date(): 2005 -04 -28 Now(): 2005 -04 -28 13: 07: 52 Hour(time) Minute(time) Second(time) Time(): 13: 07: 53 13 -operacje na datach w polach obliczeniowych 13

Operacje na datach wykorzystywane w kryteriach: Pole Wyrażenie Opis Data. Wymagana Between Date( )

Operacje na datach wykorzystywane w kryteriach: Pole Wyrażenie Opis Data. Wymagana Between Date( ) And Date. Add("m"; 3; Date( )) Używa operatora Between. . . And i funkcji Date. Add i Date aby wyświetlić zamówienia, które mają zostać zrealizowane w ciągu trzech miesięcy od daty bieżącej. Data. Zamówienia < Date( )- 30 Używa funkcji Date, aby wyświetlić zamówienia, które mają ponad 30 dni. Data. Zamówienia Year([Data. Zamówienia])= 1996 Używa funkcji Year, aby wyświetlić zamówienia, które zostały złożone w roku 1996. 14 a-nieruchomości których wynajęcie kończy się w ciągu 3 miesięcy 14 b- nieruchomości których wynajęcie skończyło się więcej niż 30 dni temu 14 c-nieruchomości, których wynajęcie skończyło się w 2004 roku 14

Data. Zamówienia Date. Part("k"; [Data. Zamówienia])=4 Używa funkcji Date. Part, aby wyświetlić zamówienia przypadające

Data. Zamówienia Date. Part("k"; [Data. Zamówienia])=4 Używa funkcji Date. Part, aby wyświetlić zamówienia przypadające na czwarty kwartał. Data. Zamówienia Date. Serial(Year ([Data. Zamówienia]); Month([Data. Zamówienia]) +1; 1)-1 Używa funkcji Date. Serial, Year i Month, aby wyświetlić zamówienia do realizacji ostatniego dnia każdego miesiąca. Data. Zamówienia Year([Data. Zamówienia])= Year(Now()) And Month([Data. Zamówienia])= Month(Now()) Używa funkcji Year i Month oraz operatora And, aby wyświetlić zamówienia na bieżący rok i miesiąc. 15 a-nieruchomości których wynajęcie kończy się w tym kwartale 15 b- nieruchomości których wynajęcie kończy się ostatniego dnia miesiąca 15 c-nieruchomości których wynajęcie kończy się w bieżącym roku i miesiącu 15

Opis funkcji dotyczących dat: Date. Diff (część_daty, data 1, data 2[, firstdayofweek[, firstweekofyear]]) Date.

Opis funkcji dotyczących dat: Date. Diff (część_daty, data 1, data 2[, firstdayofweek[, firstweekofyear]]) Date. Part (część_daty, data[, firstdayofweek[, firstweekofyear]]) Date. Add (część_daty, liczba, data) Weekday (data, [firstdayofweek]) część_daty Setting (SQL) Opis rrrr yyyy rok k q kwartał m m miesiąc r y dzień roku d d dzień miesiąca t w dzień tygodnia tt ww tydzień g h godzina n n minuta s s sekunda 16

firstdayofweek argument: firstweekofyear argument: Wartość Opis 1 niedziela (domyślnie) 1 2 poniedziałek Rozpoczyna liczenie

firstdayofweek argument: firstweekofyear argument: Wartość Opis 1 niedziela (domyślnie) 1 2 poniedziałek Rozpoczyna liczenie w tygodniu, w którym jest 1 stycznia (domyślne). 3 wtorek 2 4 środa 5 czwartek Rozpoczyna liczenie w tygodniu, który zawiera co najmniej 4 dni nowego roku. 6 piątek 3 Rozpoczyna liczenie od pełnego tygodnia roku. 7 sobota 17

Użytkownik „Biuro” 4 (zarząd biura): 17. Podaj informacje o wynajęciach nieruchomości zarejestrowanych w danym

Użytkownik „Biuro” 4 (zarząd biura): 17. Podaj informacje o wynajęciach nieruchomości zarejestrowanych w danym biurze, których termin końcowy upłynie w następnym miesiącu. 18. Podaj całkowitą liczbę umów najmu zawartych w biurach w Łomży na okres krótszy niż jeden rok. 18

Kreowanie formularzy: Kontrolowanie czasu wyświetlania: 1 -Start - zamykany po 5 sekundach Private Sub

Kreowanie formularzy: Kontrolowanie czasu wyświetlania: 1 -Start - zamykany po 5 sekundach Private Sub Form_Open(Cancel As Integer) Me. Timer. Interval = 5000 End Sub Private Sub Form_Timer() Do. Cmd. Close ac. Form, Me. Name Do. Cmd. Open. Form "2 -Przełączający hiperłącza" Do. Cmd. Open. Form "3 -Przełączający formularze" End Sub 19

Formularze przełączane przy użyciu hiperłączy do przekazywania fokusu 2 -Przełączający hiperłącza Dla etykiety w

Formularze przełączane przy użyciu hiperłączy do przekazywania fokusu 2 -Przełączający hiperłącza Dla etykiety w właściwościach Formatu ustawiamy adres hiperłącza Przełączanie przy użyciu przycisków i kodu w VBA 3 -Przełączający formularze z zamykaniem pozostawionych 20

4 – korzystanie z kreatorów i formatowanie warunkowe 5 – podformularze 6 – formularz

4 – korzystanie z kreatorów i formatowanie warunkowe 5 – podformularze 6 – formularz wyszukujący do kwerendy z pola tekstowego 7 – Personel wybierany bezpośrednio z pola kombi 21