Używanie kwerendy składającej w celu łączenia wyników wielu kwerend w jeden wynik

Używanie kwerendy składającej w celu łączenia wyników wielu kwerend w jeden wynik

Ważne : Ten artykuł został przetłumaczony maszynowo, zobacz zastrzeżenie. Angielskojęzyczną wersję tego artykułu można znaleźć tutaj .

Załóżmy, że baza danych programu Access ma dwie tabele niepowiązane —, w którym są przechowywane dane klientów i drugi przechowującego dane na temat dostawców — obie tabele mają pole informacji kontaktowych. Chcesz wyświetlić informacje o kontakcie z obu tabel w jednym widoku. W tym celu należy najpierw utworzyć kwerendę wybierającą dla każdej tabeli do pobierania informacji kontaktowych, a następnie połączyć tych wyników, tworząc kwerendy składającej.

Uwaga : Zawartość w tym artykule jest przeznaczona dla komputerów stacjonarnych baz danych programu Access. Nie można tworzyć ani za pomocą kwerendy składającej w bazach danych sieci web programu Access lub aplikacji sieci web programu Access.

Przypomnieć sobie informacje dotyczące tworzenia podstawowych kwerend wybierających? Zobacz Tworzenie prostej kwerendy wybierającej.

Na początek kilka informacji na temat tworzenia kwerendy składającej:

  • Kwerendy wybierające łączone w kwerendzie składającej muszą mieć taką samą liczbę pól wyjściowych o takiej samej kolejności. Ich typy danych muszą być identyczne lub zgodne. Po uruchomieniu kwerendy składającej dane z każdego zestawu odpowiadających sobie pól są łączone w jedno pole wyjściowe, dzięki czemu wyniki kwerendy mają taką samą liczbę pól, co każda z instrukcji SELECT.

  • Kwerenda składająca jest specyficzna dla języka SQL i dlatego musi zostać napisana bezpośrednio w języku SQL. Aby pisać kwerendy specyficzne dla języka SQL, w tym kwerendy składające, przełącz widok na widok SQL.

Krok 1. Tworzenie kwerend wybierających

Uwaga : Chociaż do kwerendy można dołączyć wiele tabel i kwerend, w tej procedurze przyjęto założenie, że każda kwerenda wybierająca zawiera dane tylko z jednej tabeli.

  1. Na karcie Tworzenie w grupie Kwerendy kliknij pozycję Projekt kwerendy.

  2. W oknie dialogowym Pokazywanie tabeli kliknij dwukrotnie tabelę zawierającą pola, które chcesz dołączyć. Tabela zostanie dodana do okna projektu kwerendy.

  3. Zamknij okno dialogowe Pokazywanie tabeli.

  4. W oknie projektu kwerendy kliknij dwukrotnie każde pole, które chcesz dołączyć.
    Wybierając pola, upewnij się, że dodajesz taką samą liczbę pól i że te pola występują w takiej samej kolejności jak podczas dodawania pól do pozostałych kwerend wybierających. Zwróć szczególną uwagę na typy danych pól — upewnij się, że pola mają zgodne typy danych z polami o tym samym położeniu w pozostałych kwerendach, które łączysz. Jeśli na przykład pierwsza kwerenda wybierająca ma pięć pól, z których pierwsze zawiera dane typu data/godzina, upewnij się, że każda z pozostałych łączonych kwerend wybierających również ma pięć pól, z których pierwsze zawiera dane typu data/godzina, i tak dalej.

  5. Opcjonalnie Dodaj kryteria do pól, wpisując odpowiednie wyrażenia w wierszu kryteria w siatce pól.

  6. Po zakończeniu dodawania pól i ich kryteriów Uruchom kwerendę wybierającą i przejrzyj jej wyniki. Na karcie Projektowanie w grupie wyniki kliknij przycisk Uruchom.

  7. Przełącz kwerendę na widok projektu.

  8. Zapisz kwerendę wybierającą i pozostaw ją otwartą.

  9. Powtórz tę procedurę dla każdej z kwerend wybierających, które chcesz połączyć.

Aby uzyskać więcej informacji na temat używania kryteriów w kwerendzie zobacz Stosowanie kryteriów do kwerendy.

Krok 2. Łączenie kwerend wybierających

W tym kroku możesz utworzyć za pomocą instrukcji SQL kwerendy składającej. (Aby uzyskać więcej informacji, zobacz sekcję składni języka SQL poniżej).

  1. Na karcie Tworzenie w grupie Kwerendy kliknij pozycję Projekt kwerendy.

  2. Zamknij okno dialogowe Pokazywanie tabeli.

  3. Na karcie Projektowanie w grupie Kwerenda kliknij przycisk Składająca.

Program Access ukryje okno projektu kwerendy i wyświetli kartę obiektu widoku SQL. Na tym etapie karta obiektu widoku SQL jest pusta.

  1. Kliknij kartę pierwszej kwerendy wybierającej, którą chcesz połączyć w kwerendzie składającej.

  2. Na karcie Narzędzia główne kliknij pozycję Widok > Widok SQL.

  3. Skopiuj instrukcję SQL dla kwerendy wybierającej. Kliknij kartę kwerendy składającej, której tworzenie zostało rozpoczęte w kroku 1.

  4. Wklej instrukcję SQL kwerendy wybierającej na karcie obiektu widoku SQL kwerendy składającej.

  5. Usuń średnik (;) znajdujący się na końcu instrukcji SQL kwerendy wybierającej.

  6. Naciśnij klawisz Enter, aby przeniesienie kursora o jeden wiersz w dół, a następnie wpisz słowo kluczowe UNION nowy wiersz.

  7. Kliknij kartę następnej kwerendy wybierającej, którą chcesz połączyć w kwerendzie składającej.

  8. Powtarzaj kroki 5 do 10 do momentu skopiowania i wklejenia wszystkich instrukcji SQL kwerend wybierających do okna widoku SQL kwerendy składającej. Nie usuwaj średnika ani nie wpisuj niczego po instrukcji SQL ostatniej kwerendy wybierającej.

  9. Na karcie Projektowanie w grupie Wyniki kliknij przycisk Uruchom.

Wyniki kwerendy składającej zostaną wyświetlone w widok arkusza danych.

Początek strony

Porady dotyczące korzystania z kwerend składających

  • Aby mieć możliwość rozróżniania tego, które wiersze pochodzą z której tabeli, dodaj odpowiedni ciąg tekstowy jako pole w każdej instrukcji wybierającej.

    Jeśli na przykład jedna instrukcja wybierająca pobiera pola z tabeli o nazwie Produkty, a druga instrukcja wybierająca pobiera pola z tabeli o nazwie Usługi, można dodać ciąg „Produkt” jako pole na końcu pierwszej instrukcji i ciąg „Usługa” na końcu drugiej. Można też przypisać alias pola (na przykład „typ”) do tych ciągów za pomocą słowa kluczowego AS, jak pokazano w poniższym przykładzie:

    SELECT field1, field2, ... "Product" AS type

    SELECT field1, field2, ... "Service" AS type

    Wyniki kwerendy zawierałyby pole o nazwie „typ”, pokazujące, czy wiersz pochodzi z tabeli Produkty, czy z tabeli Usługi.

  • Każde słowo kluczowe UNION łączy instrukcje SELECT występujące bezpośrednio przed nim i po nim. W przypadku użycia słowa kluczowego ALL z niektórymi, ale nie ze wszystkimi słowami kluczowymi UNION w kwerendzie, wyniki będą zawierać zduplikowane wiersze z par instrukcji SELECT połączonych za pomocą słów kluczowych UNION ALL, ale nie będą zawierać zduplikowanych wierszy z instrukcji SELECT połączonych przy użyciu słowa kluczowego UNION bez słowa kluczowego ALL.

  • Liczba pól, typy danych pól i ich kolejność w kwerendach wybierających muszą sobie odpowiadać. Aby tak było, można się posłużyć wyrażeniami, takimi jak obliczenia lub podkwerendy.

    Można na przykład dopasować dwuznakowe pole roku i czteroznakowe pole roku, wyodrębniając dwie ostatnie cyfry czteroznakowego roku za pomocą funkcji Right.

Tworzenie nowej tabeli przy użyciu wyników kwerendy składającej

Najpierw użyj kwerendy składającej jako danych wejściowych dla nowej kwerendy wybierającej, a następnie użyj tej kwerendy wybierającej jako podstawy kwerendy tworzącej tabelę, jak pokazano w następującej procedurze:

  1. Utwórz i zapisz kwerendę składającą.

  2. Na karcie Tworzenie w grupie Kwerendy kliknij pozycję Projekt kwerendy.

  3. W oknie dialogowym Pokazywanie tabeli kliknij kartę Kwerendy.

  4. Kliknij dwukrotnie kwerendę składającą, a następnie zamknij okno dialogowe Pokazywanie tabeli.

    Uwaga : Jeśli na pasku komunikatów zostanie wyświetlone ostrzeżenie o zabezpieczeniach, to kwerendy funkcjonalne mogą być wyłączone. Aby włączyć kwerendy funkcjonalne, kliknij przycisk Włącz zawartość na pasku komunikatów.

  5. W siatce projektu kwerendy na karcie obiektu kwerendy składającej kliknij dwukrotnie gwiazdkę (*), aby utworzyć nową tabelę z użyciem wszystkich pól kwerendy składającej.

  6. Na karcie Projektowanie w grupie Typ zapytania kliknij pozycję Utwórz tabelę.

  7. W oknie dialogowym Tworzenie tabeli wpisz nazwę dla nowej tabeli.

  8. Opcjonalnie określ inną bazę danych, w której ma zostać utworzona tabela.

  9. Kliknij przycisk OK.

  10. Na karcie Projektowanie w grupie Wyniki kliknij przycisk Uruchom.

Tworzenie pełnego sprzężenia zewnętrznego za pomocą kwerendy składającej

Za pomocą kwerendy składającej można utworzyć pełne sprzężenie zewnętrzne. Pełne sprzężenie zewnętrzne nie ogranicza wierszy zwracanych przez jedną z tabel sprzężonych, ale łączy wiersze na podstawie wartości w polu sprzężenia.

  1. Utwórz kwerendę zawierającą lewe sprzężenie zewnętrzne w polu, którego chcesz użyć do pełnego sprzężenia zewnętrznego.

  2. Na karcie Narzędzia główne w grupie Widoki kliknij przycisk Widok, a następnie kliknij polecenie Widok SQL.

  3. Naciśnij klawisze Ctrl+C, aby skopiować kod SQL.

  4. Usuń średnik na końcu klauzuli FROM, a następnie naciśnij klawisz Enter.

  5. Wpisz instrukcję UNION, a następnie naciśnij klawisz Enter.

    Uwaga : Tworząc pełne sprzężenie zewnętrzne za pomocą kwerendy składającej, nie należy używać słowa kluczowego ALL.

  6. Naciśnij klawisze Ctrl+V, aby wkleić kod SQL skopiowany w kroku 3.

  7. We wklejonym kodzie zamień ciąg LEFT JOIN na ciąg RIGHT JOIN.

  8. Usuń średnik na końcu drugiej klauzuli FROM, a następnie naciśnij klawisz Enter.

  9. Dodaj klauzulę WHERE określającą, że pole sprzężenia ma wartość NULL w pierwszej tabeli wyszczególnionej w klauzuli FROM (lewa tabela).

    Jeśli na przykład klauzula FROM jest następująca:

    FROM Products RIGHT JOIN [Order Details] 
    ON Products.ID = [Order Details].[Product ID]

    Dodaj następującą klauzulę WHERE:

    WHERE Products.ID IS NULL

  10. Wpisz średnik (;) na końcu klauzuli WHERE, aby wskazać koniec kwerendy składającej.

  11. Na karcie Projektowanie w grupie Wyniki kliknij przycisk Uruchom.
    Wyniki kwerendy składającej zostaną wyświetlone w widok arkusza danych.

Aby uzyskać więcej informacji zobacz Sprzęganie tabel i kwerend.

Początek strony

Wymagania i składnia SQL dla kwerendy składającej

Kilka wymagań dotyczących kwerendy składającej

  • Kwerendy wybierające łączone w kwerendzie składającej muszą mieć taką samą liczbę pól wyjściowych o takiej samej kolejności. Ich typy danych muszą być identyczne lub zgodne. Po uruchomieniu kwerendy składającej dane z każdego zestawu odpowiadających sobie pól są łączone w jedno pole wyjściowe, dzięki czemu wyniki kwerendy mają taką samą liczbę pól, co każda z instrukcji SELECT.

    Uwaga : Na potrzeby kwerendy składającej typy danych Liczba i Tekst są zgodne.

  • Kwerenda składająca jest specyficzna dla języka SQL i dlatego musi zostać napisana bezpośrednio w języku SQL. Aby pisać kwerendy specyficzne dla języka SQL, w tym kwerendy składające, przełącz widok na widok SQL.

Składnia SQL kwerendy składającej

W kwerendzie składającej każda kwerenda wybierająca (nazywana też instrukcją SELECT) zawiera następujące klauzule:

Klauzula

Elementy listy

SELECT

Pola zawierające dane, które chcesz pobrać.

FROM

Tabele zawierające te pola.

Opcjonalnie WHERE

Kryteria dla tych pól.

Instrukcje SELECT są łączone za pomocą słowa kluczowego UNION.

Podstawowa składnia SQL kwerendy składającej jest następująca:

SELECT field_1[, field_2,…]
FROM table_1[, table_2,…]
UNION [ALL]
SELECT field_a[, field_b,...]
FROM table_a[, table_b,…];

Załóżmy na przykład, że baza danych ma jedną tabelę o nazwie Produkty i drugą tabelę o nazwie Usługi i obie te tabele zawierają pola z nazwą produktu lub usługi, ceną, informacjami o dostępności gwarancji lub rękojmi oraz informacjami o tym, czy produkt lub usługa są oferowane na wyłączność. Chociaż w tabeli Produkty są przechowywane informacje o gwarancji, a w tabeli Usługi — informacje o rękojmi, podstawowe informacje są takie same (wskazują, czy do określonego produktu lub usługi jest dołączona gwarancja jakości). Za pomocą kwerendy składającej, takiej jak przedstawiona niżej, można połączyć cztery pola z dwóch tabel:

SELECT name, price, warranty_available, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee_available, exclusive_offer
FROM Services;

Teraz przeanalizujmy składnię z powyższego przykładu wiersz po wierszu:

Składnia

Objaśnienie

Informacje dodatkowe

SELECT nazwa, cena, dostępna_gwarancja, oferta_wyłączna

Pierwsza klauzula SELECT

Po klauzuli SELECT występuje lista identyfikatorów wskazujących pola, z których mają zostać pobrane dane.

W klauzuli SELECT musi być wyszczególnione co najmniej jedno pole.

W tej klauzuli SELECT zostały wyszczególnione identyfikatory pól nazwa, cena, dostępna_gwarancja i oferta_wyłączna.

FROM Produkty

Pierwsza klauzula FROM

Klauzula FROM występuje po klauzuli SELECT. Te dwie klauzule tworzą razem podstawową instrukcję SELECT.

Po klauzuli FROM występuje lista identyfikatorów wskazujących tabele zawierające pola wyszczególnione w klauzuli SELECT.

W klauzuli FROM musi być wyszczególniona co najmniej jedna tabela.

W tej klauzuli FROM jest wyszczególniony identyfikator tabeli Produkty.

UNION ALL

Słowo kluczowe UNION oraz opcjonalne słowo kluczowe ALL

Wyniki instrukcji SELECT poprzedzającej słowo kluczowe UNION są łączone z wynikami instrukcji SELECT występującej po tym słowie kluczowym.

Jeśli zostanie użyte słowo kluczowe ALL, zduplikowane wiersze nie zostaną usunięte z wyników kwerendy składającej.

W przypadku użycia słowa kluczowego ALL kwerenda działa szybciej, ponieważ w programie Access nie muszą być sprawdzane zduplikowane wiersze.

Użyj słowa kluczowego ALL, jeśli jest spełniony dowolny z poniższych warunków:

  • Kwerendy wybierające na pewno nie zwrócą żadnych zduplikowanych wierszy.

  • Nie ma znaczenia, czy wyniki będą zawierać zduplikowane wiersze.

  • Użytkownik chce widzieć zduplikowane wiersze.

SELECT nazwa, cena, dostępna_rękojmia, oferta_wyłączna

Druga klauzula SELECT

Kilka reguł:

  • Druga klauzula SELECT musi mieć tyle samo pól, ile ma pierwsza klauzula SELECT.

  • Pola zawierające informacje tego samego rodzaju muszą występować w tej klauzuli w tej samej kolejności.

  • Pola zawierające informacje tego samego rodzaju muszą mieć takie same lub zgodne typy danych.

Uwaga : Nazwy pól w wynikach kwerendy składającej są pobierane z pierwszej klauzuli SELECT. Dlatego w tym przykładzie dane z pola „dostępna_gwarancja” i z pola „dostępna_rękojmia” mają w wynikach kwerendy nazwę „dostępna_gwarancja”.

FROM Usługi

Druga klauzula FROM

W klauzulach FROM kwerendy składającej nie ma ograniczeń dotyczących tabel. Można utworzyć kwerendę składającą, w której w każdej klauzuli FROM będą używane te same tabele. W klauzulach FROM mogą występować różne liczby tabel. W tym przykładzie każda klauzula FROM zawiera tylko jedną tabelę.

Początek strony

Uwaga : Zrzeczenie dotyczące tłumaczenia maszynowego: Ten artykuł został przetłumaczony przez system komputerowy bez interwencji człowieka. Firma Microsoft udostępnia te tłumaczenia maszynowe, aby ułatwić użytkownikom, którzy nie znają języka angielskiego, korzystanie z zawartości dotyczącej produktów, usług i technologii firmy Microsoft. Ponieważ ten artykuł został przetłumaczony maszynowo, może zawierać błędy w słownictwie, składniowe lub gramatyczne.

Rozwijaj swoje umiejętności
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów pakietu Office

Czy te informacje były pomocne?

Dziękujemy za opinię!

Dziękujemy za opinię! Wygląda na to, że połączenie Cię z jednym z naszych agentów pomocy technicznej pakietu Office może być pomocne.

×