Platí pro
Access 2010

Tento článek vysvětluje, jak použít dotazy na nejvyšší hodnoty a dotazy souhrnů k vyhledání nejnovějších nebo nejstarších dat v sadě záznamů. To vám může pomoct zodpovědět řadu obchodních otázek, například kdy zákazník naposledy zadal objednávku nebo které pět čtvrtletí bylo pro vás nejlepších z hlediska prodeje, podle měst.

V tomto článku

Přehled

Pomocí dotazu na nejvyšší hodnoty můžete seřadit data a zkontrolovat položky s nejvyšším pořadím. Dotaz s nejvyšší hodnotou je výběrový dotaz, který vrátí zadaný počet nebo procento hodnot z horní části výsledků, například pět nejoblíbenějších stránek na webu. Dotaz na nejvyšší hodnoty můžete použít pro jakýkoli druh hodnot – nemusí to být čísla.

Pokud chcete data seskupit nebo shrnout, než je seřadíte, nemusíte použít dotaz na nejvyšší hodnoty. Předpokládejme například, že potřebujete najít prodejní čísla pro dané datum pro každé město, ve kterém vaše společnost působí. V takovém případě se z měst stanou kategorie (potřebujete najít data pro jednotlivá města), takže použijete dotaz součtů.

Když pomocí dotazu na nejvyšší hodnoty vyhledáte záznamy, které obsahují nejnovější nebo nejstarší data v tabulce nebo skupině záznamů, můžete odpovědět na řadu obchodních otázek, například na následující:

  • Kdo se v poslední době nejvíce prodá?

  • Kdy zákazník naposledy provedl objednávku?

  • Kdy jsou v týmu další tři narozeniny?

Pokud chcete vytvořit dotaz s nejvyšší hodnotou, začněte vytvořením výběrového dotazu. Potom data seřaďte podle své otázky – ať už hledáte horní nebo dolní část. Pokud potřebujete data seskupit nebo shrnout, přepněte výběrový dotaz na dotaz souhrnů. Potom můžete použít agregační funkci, například Max nebo Min , která vrátí nejvyšší nebo nejnižší hodnotu, nebo První nebo Poslední k vrácení nejstaršího nebo nejnovějšího data.

Tento článek předpokládá, že hodnoty data, které použijete, mají datový typ Datum a čas. Pokud jsou hodnoty kalendářních dat v textovém poli, .

Zvažte použití filtru místo dotazu na nejvyšší hodnoty.

Filtr je obvykle lepší, pokud máte na mysli konkrétní datum. Pokud chcete zjistit, jestli byste měli vytvořit dotaz na nejvyšší hodnoty nebo použít filtr, zvažte následující:

  • Pokud chcete vrátit všechny záznamy, u kterých se datum shoduje s datem, které předchází určitému datu nebo je pozdější, použijte filtr. Pokud chcete například zobrazit data prodeje mezi dubnem a červencem, použijte filtr.

  • Pokud chcete vrátit zadané množství záznamů, které mají v poli nejnovější nebo nejnovější data, a neznáte přesné hodnoty kalendářních dat nebo na nich nezáleží, vytvoříte dotaz na nejvyšší hodnoty. Pokud chcete například zobrazit pět nejlepších čtvrtletí prodeje, použijte dotaz s nejvyššími hodnotami.

Další informace o vytváření a používání filtrů najdete v článku Použití filtru k zobrazení vybraných záznamů v accessové databázi.

Začátek stránky

Příprava ukázkových dat, která budou následovat s příklady

Kroky v tomto článku používají data v následujících ukázkových tabulkách.

Tabulka Zaměstnanci   

LastName

Jméno

Adresa

Město

CountryOrR egion

Datum narození

Datum nástupu

Klčo

René

1 Main St.

New York

USA

5. února 1968

10. června 1994

Heloo

Waleed

52 1st St.

Boston

USA

22. května 1957

22. listopadu 1996

Veselý

Guido

3122 75th Ave. S.W.

Seattle

USA

11. listopadu 1960

11. března 2000

Bagel

Jean Philippe

1 Contoso Blvd.

Londýn

UK

22. března 1964

22. června 1998

Cena

Juliánský

Calle Smith 2

Mexico City

Mexiko

5. června 1972

5. ledna 2002

Hughes

Christine

3122 75. sv.

Praha

USA

23. ledna 1970

23. dubna 1999

Riley

Petr

67 Big St.

Tampa

USA

14. dubna 1964

14. října 2004

Birkby

Dana

2 Nosey Pkwy

Ostrava

USA

29. října 1959

29. března 1997

Tabulka EventType   

TypeID

Typ události

1

Uvedení produktu na trh

2

Podniková funkce

3

Privátní funkce

4

Zvedač fondů

5

Veletrh

6

Přednáška

7

Koncert

8

Exponát

9

Pouliční veletrh

Tabulka Zákazníci   

CustomerID

Společnost

Kontakt

1

Contoso, Ltd. Grafika

Jonathan Haas

2

Tailspin Toys

Ellen Adams

3

Fabrikam

Carol Philips

4

Wingtip Toys

Lucio Iallo

5

A. Datum

Mandar Samant

6

Adventure Works

Brian Burke

7

Design Institute

Jaka Stele

8

Škola výtvarných umění

Milena Duomanová

Tabulka Events   

ID události

Typ události

Zákazník

Datum události

Cena

1

Uvedení produktu na trh

Contoso, Ltd.

4/14/2011

100 000 Kč

2

Podniková funkce

Tailspin Toys

4/21/2011

80 000 Kč

3

Veletrh

Tailspin Toys

01.05.11

25 000 Kč

4

Exponát

Graphic Design Institute

5/13/2011

4 500 Kč

5

Veletrh

Contoso, Ltd.

5/14/2011

55 000 Kč

6

Koncert

Škola výtvarných umění

5/23/2011

12 000 Kč

7

Uvedení produktu na trh

A. Datum

6/1/2011

150 000 Kč

8

Uvedení produktu na trh

Wingtip Toys

6/18/2011

21 000 Kč

9

Zvedač fondů

Adventure Works

6/22/2011

1 300 Kč

10

Přednáška

Graphic Design Institute

6/25/2011

2 450 Kč

11

Přednáška

Contoso, Ltd.

4.7.2011

3 800 Kč

12

Pouliční veletrh

Graphic Design Institute

4.7.2011

5 500 Kč

Poznámka: Kroky v této části předpokládají, že tabulky Customers (Zákazníci) a Event Type (Typ události) se nacházejí na straně "1" relace 1:N s tabulkou Events. V tomto případě tabulka Events sdílí pole CustomerID a TypeID. Dotazy souhrnů popsané v dalších částech nebudou bez těchto relací fungovat.

Vložení ukázkových dat do excelových listů

  1. Spusťte Excel. Otevře se prázdný sešit.

  2. Stisknutím kombinace kláves SHIFT+F11 vložte list (budete potřebovat čtyři).

  3. Zkopírujte data z každé ukázkové tabulky do prázdného listu. Zahrňte záhlaví sloupců (první řádek).

Vytvoření databázových tabulek z listů

  1. Vyberte data z prvního listu, včetně záhlaví sloupců.

  2. Klikněte pravým tlačítkem na navigační podokno a potom klikněte na Vložit.

  3. Kliknutím na Ano potvrďte, že první řádek obsahuje záhlaví sloupců.

  4. Opakujte kroky 1 až 3 pro každý zbývající list.

Vyhledání posledního nebo nejméně posledního data

Kroky v této části používají ukázková data k ilustraci procesu vytvoření dotazu s nejvyššími hodnotami.

Vytvoření základního dotazu na nejvyšší hodnoty

  1. Na kartě Vytvoření klikněte ve skupině Dotazů na tlačítko Návrh dotazu.

  2. Poklikejte na tabulku Employees (Zaměstnanci) a potom klikněte na Close (Zavřít).

    Pokud použijete ukázková data, přidejte do dotazu tabulku Zaměstnanci.

  3. Přidejte pole, která chcete použít v dotazu, do návrhové mřížky. Na každé pole můžete poklikáním nebo přetažením jednotlivých polí na prázdnou buňku v řádku Pole .

    Pokud použijete ukázkovou tabulku, přidejte pole Jméno, Příjmení a Datum narození.

  4. V poli, které obsahuje nejvyšší nebo nejnižší hodnoty (pole Datum narození, pokud používáte ukázkovou tabulku), klikněte na řádek Seřadit a vyberte Vzestupně nebo Sestupně.

    Sestupné pořadí řazení vrátí nejnovější datum a Vzestupné pořadí řazení vrátí nejstarší datum.

    Důležité informace: V řádku Seřadit je nutné nastavit hodnotu pouze pro pole, která obsahují vaše kalendářní data. Pokud zadáte pořadí řazení pro jiné pole, dotaz nevrátí požadované výsledky.

  5. Na kartě Návrh klikněte ve skupině Nástroje na šipku dolů vedle položky Vše (seznam Nejvyšší hodnoty ) a zadejte počet záznamů, které chcete zobrazit, nebo vyberte některou možnost ze seznamu.

  6. Kliknutím na Spustit Obrázek tlačítkaspusťte dotaz a zobrazte výsledky v zobrazení Datový list.

  7. Uložte dotaz jako NextBirthDays.

Uvidíte, že tento typ dotazu s nejvyššími hodnotami může odpovídat na základní otázky, jako je například to, kdo je nejstarší nebo nejmladší osoba ve společnosti. V dalších krocích se dozvíte, jak použít výrazy a další kritéria k přidání výkonu a flexibility dotazu. Kritéria zobrazená v dalším kroku vrátí další tři narozeniny zaměstnanců.

Přidání kritérií do dotazu

V těchto krocích se použije dotaz vytvořený v předchozím postupu. Dotaz na nejvyšší hodnoty můžete sledovat, pokud obsahuje skutečná data data a čas, nikoli textové hodnoty.

Tip:  Pokud chcete lépe porozumět tomu, jak tento dotaz funguje, přepněte v každém kroku mezi návrhové zobrazení a zobrazením Datový list. Pokud chcete zobrazit skutečný kód dotazu, přepněte do zobrazení SQL. Pokud chcete přepnout mezi zobrazeními, klikněte pravým tlačítkem myši na kartu v horní části dotazu a potom klikněte na požadované zobrazení.

  1. V navigačním podokně klikněte pravým tlačítkem na dotaz NextBirthDays a potom klikněte na Návrhové zobrazení.

  2. V návrhové mřížce dotazu zadejte do sloupce napravo od pole Datum narození následující:MonthBorn: DatePart("m",[Datum narození]).Tento výraz extrahuje měsíc z BirthDate pomocí funkce DatePart .

  3. Do dalšího sloupce návrhové mřížky dotazu zadejte následující:DayOfMonthBorn: DatePart("d";[Datum narození])Tento výraz extrahuje den v měsíci z pole BirthDate pomocí funkce DatePart .

  4. Zrušte zaškrtnutí políček na řádku Zobrazit u každého ze dvou výrazů, které jste právě zadali.

  5. Klikněte na řádek Seřadit pro každý výraz a pak vyberte Vzestupně.

  6. Do řádku Kritéria ve sloupci Datum narození zadejte následující výraz:Month([Birth Date]) > Month(Date()) OR Month([Birth Date])= Month(Date()) AND Day([Birth Date])>Day(Date())Tento výraz dělá toto:

    • Month( [Datum narození]) > Month(Date()) určuje, že datum narození každého zaměstnance spadá do budoucího měsíce.

    • Month( [Birth Date])= Month(Date()) And Day([Birth Date])>Day(Date()) určuje, že pokud datum narození nastane v aktuálním měsíci, připadají narozeniny na aktuální den nebo za aktuálním dnem.

      Stručně řečeno, tento výraz vyloučí všechny záznamy, ve kterých se narozeniny vyskytují mezi 1. lednem a aktuálním datem.

      Tip:  Další příklady výrazů kritérií dotazu najdete v článku Příklady kritérií dotazu.

  7. Na kartě Návrh ve skupině Nastavení dotazu zadejte do pole Návrathodnotu 3.

  8. Na kartě Návrh klikněte ve skupině Výsledky na tlačítko Spustit Obrázek tlačítka.

Poznámka:  Ve vlastním dotazu, který používá vaše vlastní data, se někdy může zobrazit více záznamů, než jste zadali. Pokud vaše data obsahují více záznamů, které sdílejí hodnotu, která patří mezi nejvyšší hodnoty, dotaz vrátí všechny takové záznamy, i když to znamená, že se vrátí více záznamů, než jste chtěli.

Začátek stránky

Vyhledání nejnovějších nebo nejméně posledních dat pro skupiny záznamů

Dotaz souhrnů slouží k vyhledání nejstarších nebo nejnovějších dat záznamů, které spadají do skupin, například událostí seskupených podle měst. Souhrnný dotaz je výběrový dotaz, který používá agregační funkce (například Seskupit podle, Mv, Max, Počet, První a Poslední) k výpočtu hodnot pro každé výstupní pole.

Zahrňte pole, které chcete použít pro kategorie – seskupit podle – a pole s hodnotami, které chcete sumarizovat. Pokud zahrnete další výstupní pole – například jména zákazníků při seskupování podle typu události – dotaz tato pole použije také k vytvoření skupin a změní výsledky tak, aby neodpoví na původní otázku. Pokud chcete řádky označit pomocí jiných polí, vytvoříte další dotaz, který použije dotaz součtů jako zdroj, a přidáte do dotazu další pole.

Tip:  Vytváření dotazů v krocích je velmi efektivní strategií pro odpovědi na pokročilejší otázky. Pokud máte potíže s fungováním složitého dotazu, zvažte, jestli byste ho mohli rozdělit na řadu jednodušších dotazů.

Vytvoření souhrnného dotazu

Tento postup používá ukázkovou tabulku Events a ukázkovou tabulku EventType k zodpovězení této otázky:

Kdy byla poslední událost každého typu události, s výjimkou koncertů?

  1. Na kartě Vytvoření klikněte ve skupině Dotazů na tlačítko Návrh dotazu.

  2. Poklikejte na tabulky Events a EventType. Každá tabulka se zobrazí v horní části návrháře dotazů.

  3. Poklikejte na pole EventType tabulky EventType a pole EventDate z tabulky Events a přidejte pole do návrhové mřížky dotazu.

  4. V návrhové mřížce dotazu zadejte do řádku Kritéria pole Typ události<>Koncert.

    Tip:  Další příklady výrazů kritérií najdete v článku Příklady kritérií dotazu.

  5. Na kartě Návrh ve skupině Zobrazit nebo skrýt klikněte na Součty.

  6. V návrhové mřížce dotazu klikněte v poli Datum události na řádek Souhrn a potom klikněte na Max.

  7. Na kartě Návrh klikněte ve skupině Výsledky na položku Zobrazení a potom na položku Zobrazení SQL.

  8. V okně SQL na konci klauzule SELECT hned za klíčovým slovem AS nahraďte MaxOfEventDate za MostRecent.

  9. Uložte dotaz jako MostRecentEventByType.

Vytvoření druhého dotazu pro přidání dalších dat

Tento postup používá k zodpovězení této otázky dotaz MostRecentEventByType z předchozího postupu:

Kdo byl zákazníkem na poslední události jednotlivých typů událostí?

  1. Na kartě Vytvoření klikněte ve skupině Dotazů na tlačítko Návrh dotazu.

  2. Na kartě Dotazy poklikejte na dotaz MostRecentEventByType.

  3. Na kartě Tables (Tabulky ) poklikejte na tabulku Events (Události) a Customers (Zákazníci).

  4. V návrháři dotazů poklikejte na následující pole:

    1. V tabulce Events poklikejte na Položku Typ události.

    2. V dotazu MostRecentEventByType poklikejte na MostRecent.

    3. V tabulce Zákazníci poklikejte na Společnost.

  5. V návrhové mřížce dotazu vyberte na řádku Sort (Seřadit) ve sloupci EventType (Typ události) možnost Ascending (Vzestupně).

  6. Na kartě Návrh klikněte ve skupině Výsledky na tlačítko Spustit.

Začátek stránky

Potřebujete další pomoc?

Chcete další možnosti?

Prozkoumejte výhody předplatného, projděte si školicí kurzy, zjistěte, jak zabezpečit své zařízení a mnohem více.