Pokud chcete, aby byla souhrnná data v Access čitelnější a srozumitelnější, zvažte použití křížového dotazu. Křížový dotaz vypočítá součet, průměr nebo jinou agregační funkci a pak seskupí výsledky podle dvou sad hodnot – jedné nastavené na straně datového listu a druhé v horní části. Na pásu karet klikněte na Vytvořit a potom ve skupině Dotazy klikněte na Průvodce dotazem. V dialogovém okně Nový dotaz poklikejte na Průvodce křížovým dotazem.
Pokud jedna skupina záhlaví obsahuje hodnoty data, pomůže vám průvodce záznamy seskupit do standardních intervalů (například podle měsíců nebo čtvrtletí).
V tomto článku
Poznámka: Křížové dotazy nejsou ve webových aplikacích Accessu k dispozici a ve webové databázi jsou podporované jenom částečně: nemůžou je používat žádné webové objekty.
Základní informace
Křížový dotaz patří k typu, kterému se říká Výběrový dotaz. Při spuštění křížového dotazu se výsledky zobrazí v datovém listu, jehož struktura je odlišná od jiných typů datových listů.
V porovnání s jednoduchým výběrovým dotazem zobrazujícím stejná data usnadňuje struktura křížového dotazu čtení výsledků, jak je vidět na následujícím obrázku.
1. Tento výběrový dotaz seskupuje souhrnná data svisle podle zaměstnance a kategorie.
2. Křížový dotaz může zobrazit stejná data, ale seskupí je svisle i vodorovně tak, aby byl datový list kompaktnější a přehlednější.
Při vytváření křížového dotazu určíte, která pole obsahují záhlaví řádků, které pole obsahuje záhlaví sloupců a které pole obsahuje hodnoty k vytvoření souhrnu. U záhlaví sloupců a hodnot k vytvoření souhrnu lze použít vždy pouze jedno pole. U záhlaví řádků lze použít až tři pole.
Záhlaví řádků, záhlaví sloupců a hodnoty k vytvoření souhrnu můžete také vytvořit pomocí výrazů. Další informace najdete v článku Agregační funkce SQL.
1. Jeden, dva nebo tři sloupce na této straně obsahují záhlaví řádků. Názvy polí použitých pro záhlaví řádků jsou zobrazeny v horním řádku těchto sloupců.
2. Zde se zobrazují záhlaví řádků. Počet řádků v datovém listu křížového dotazu může velmi rychle narůst v případě, že pro záhlaví řádků použijete více než jedno pole, protože se zobrazí všechny kombinace záhlaví řádků.
3. Sloupce na této straně obsahují záhlaví sloupců a souhrnné hodnoty. Všimněte si, že název záhlaví sloupce se v datovém listu nezobrazuje.
4. Souhrnné hodnoty jsou zobrazeny zde.
Způsoby vytvoření křížového dotazu
Pomocí Průvodce křížovým dotazem: Průvodce křížovým dotazem je většinou nejrychlejší a nejjednodušší způsob, jak tento typ dotazu vytvořit. Většinu práce zvládne za vás, ale pár možností v něm není dostupných.
Průvodce má tyto výhody:
-
Jednoduše se používá. Spustíte průvodce a pak už se stačí nechat vést sérií otázek.
-
Dokáže automaticky seskupovat data do intervalů. Pokud použijete jako záhlaví sloupců pole obsahující údaj o kalendářním datu a čase, průvodce vám taky pomůže seskupit data do intervalů, třeba po měsících nebo čtvrtletích.
Tip: Jestliže chcete použít jako záhlaví sloupců hodnotu z pole Datum a čas, ale potřebujete data seskupit do intervalů, které průvodce nenabízí, jako je fiskální rok nebo dvouleté období, průvodce k vytvoření dotazu nepoužívejte. Místo toho křížový dotaz sestavte v návrhovém zobrazení a požadované intervaly vytvořte pomocí výrazu.
-
Dá se použít jako výchozí bod. Pomocí průvodce můžete vytvořit základní křížový dotaz, který chcete, a pak vyladit návrh dotazu pomocí návrhového zobrazení.
Pomocí tohoto průvodce ale nemůžete:
-
Použít jako Zdroj záznamů víc tabulek nebo dotazů.
-
Použít k vytváření polí Výraz.
-
Přidat výzvu k zadání parametru.
-
Určit seznam pevných hodnot, které se mají použít jako záhlaví sloupců.
V posledním kroku průvodce můžete přejít k úpravě dotazu v návrhovém zobrazení. To vám umožní přidat do návrhu dotazu prvky, které průvodce nepodporuje, například další zdroje záznamů.
V návrhovém zobrazení: Návrhové zobrazení nabízí větší kontrolu nad návrhem dotazu. Podporuje funkce, které v průvodci nejsou dostupné.
Možnost vytvoření křížového dotazu v návrhovém zobrazení zvažte zejména, pokud chcete:
-
Mít nad procesem větší kontrolu. Průvodce některé aspekty rozhodne za vás.
-
Jako zdroj záznamů použít víc tabulek nebo dotazů.
-
Přidat do dotazu výzvu k zadání parametru.
-
Jako pole dotazu používat výrazy.
-
Určit seznam pevných hodnot, které se mají použít jako záhlaví sloupců.
-
Vyzkoušet si používání nástroje, kterým je Návrhová mřížka.
V zobrazení SQL: Pokud chcete, můžete křížový dotaz sami napsat v zobrazení SQL. V tomto zobrazení ale nemůžete zadávat datové typy parametrů. Pokud chcete v křížovém dotazu použít parametr, jeho datový typ musíte zadat tak, že dotaz upravíte v návrhovém zobrazení.
Tip: Připomínáme, že při vytváření křížových dotazů nejste omezení jedinou metodou. K prvotnímu vytvoření dotazu můžete například použít průvodce a potom jeho návrh upravit v návrhovém zobrazení.
Vytvoření křížového dotazu pomocí Průvodce křížovým dotazem
Průvodce křížovým dotazem potřebuje jako zdroj záznamů pro křížový dotaz použít jednu tabulku nebo dotaz. Pokud všechna data, která chcete do křížového dotazu zahrnout, nejsou v jedné tabulce, začněte vytvořením výběrového dotazu, který vrátí všechna požadovaná data. Další informace o vytvoření výběrového dotazu najdete v části Viz také.
V tomto příkladu vytvoříme křížový dotaz pomocí tabulky Výrobky z ukázkové databáze Northwind. Chceme zobrazit počty výrobků v jednotlivých kategoriích od všech dodavatelů.
-
Na kartě Vytvoření klikněte ve skupině Dotazy na Průvodce dotazem.
-
V dialogovém okně Nový dotaz klikněte na přepínač Průvodce křížovým dotazem a potom na tlačítko OK.
Spustí se Průvodce křížovým dotazem.
-
Na první stránce průvodce vyberte objekt (tabulku nebo dotaz), který chcete použít k vytvoření křížového dotazu. V tomto příkladu vyberte tabulku Výrobky a pak klikněte na Další.
-
Na následující stránce vyberte pole obsahující hodnoty, které chcete použít jako záhlaví řádků. Jako zdroj dat pro záhlaví řádků lze vybrat až tři pole, ale čím méně záhlaví řádků vyberete, tím bude datový list s křížovým dotazem přehlednější. Pokud vyberete pro záhlaví řádků více než jedno pole, bude pořadí, v jakém jste pole vybrali, určovat výchozí pořadí řazení výsledků.
V tomto příkladu vyberte pole Kódy dodavatelů.Value a pak klikněte na tlačítko se symbolem >. Všimněte si, že Access zobrazí název tohoto pole na levé straně náhledu ukázkového dotazu v dolní části dialogového okna. Pokračujte kliknutím na Další.
-
Na následující stránce vyberte pole obsahující hodnoty, které chcete použít jako záhlaví sloupců. Obecně je vhodnější vybrat pole, která neobsahují příliš mnoho hodnot, aby byly výsledky co nejpřehlednější. Je například lepší použít pole, které obsahuje jenom několik možných hodnot (například pohlaví), než pole s mnoha různými hodnotami (například věk).
Pokud jako záhlaví sloupce použijete pole, které obsahuje datum nebo čas, přidá průvodce krok, který vám je pomůže seskupit do intervalů, například podle měsíců nebo čtvrtletí.
V tomto příkladu vyberte pole Kategorie a všimněte si, že Access zobrazí ukázkové názvy kategorií v horním řádku náhledu ukázkového dotazu v dolní části dialogového okna. Pokračujte kliknutím na Další.
-
Jestliže jako záhlaví sloupce vyberete pole obsahující datum nebo čas, zobrazí se na následující stránce průvodce dotaz na zadání intervalu, do nějž chcete data seskupit. Můžete vybírat z položek Rok, Čtvrtletí, Měsíc, Datum nebo Datum a čas. Pokud jako záhlaví sloupce nevyberete pole obsahující datum nebo čas, průvodce tuto stránku přeskočí.
-
Na následující stránce vyberte pole a funkci, které chcete použít k výpočtu souhrnných hodnot. Datový typ vybraného pole určuje, které funkce budou dostupné.
Na stejné stránce zaškrtněte nebo zrušte zaškrtnutí políčka Ano, zahrnout součty řádků, podle toho zda chcete nebo nechcete zobrazit součty řádků.
Pokud se rozhodnete zahrnout součty řádků, zobrazí se v záhlaví křížového dotazu další řádek, který obsahuje stejné pole a funkci jako hodnota pole. Přidání řádku se součtem představuje vložení dalšího sloupce, který obsahuje součet ostatních sloupců. Pokud například křížový dotaz vypočítává průměrný věk podle místa a pohlaví osob (pohlaví osob je uvedeno v záhlaví sloupců), vypočte další sloupec průměrný věk podle místa napříč pohlavími.
V tomto příkladu vyberte v seznamu Pole pole Kód a v seznamu Funkce vyberte funkci Počet, aby Access spočítal počet výrobků v každém průsečíku dodavatelů a kategorií. Políčko Ano, zahrnout součty řádků nechte zaškrtnuté. Access vytvoří sloupec, ve kterém bude sečtený počet výrobků od každého dodavatele. Pokračujte kliknutím na Další.
-
Na poslední stránce průvodce zadejte název dotazu a vyberte, jestli chcete zobrazit výsledky nebo upravit návrh dotazu.
Funkci použitou k výpočtu součtů řádků můžete změnit úpravou křížového dotazu v návrhovém zobrazení.
-
Pokud jste podle pokynů v tomto příkladu použili tabulku Výrobky z databáze Northwind, zobrazí křížový dotaz seznam názvů dodavatelů jako řádky, názvy kategorií výrobků jako sloupce a v každém průsečíku zobrazí počet výrobků.
Vytvoření křížového dotazu v návrhovém zobrazení dovoluje použít libovolný počet zdrojů záznamů (tabulky a dotazy). Pokud dáváte přednost co nejjednoduššímu návrhu, vytvořte nejdřív výběrový dotaz, který vrátí všechna požadovaná data, a ten potom použijte dotaz jako jediný zdroj záznamů pro křížový dotaz. Další informace o vytváření výběrových dotazů naleznete v oddílu Viz také.
Při tvorbě křížového dotazu v návrhovém zobrazení určujete pomocí řádků Celkem a Křížový dotaz v návrhové mřížce, které hodnoty polí budou použity v záhlaví sloupců, které hodnoty polí se zobrazí v záhlaví řádků a které hodnoty polí budou sloužit k výpočtům součtu, průměru, počtu a dalších funkcí.
1. Nastavení těchto řádků určuje, zda je pole záhlavím řádku, sloupce nebo souhrnnou hodnotou.
2. Toto nastavení zobrazuje hodnoty pole v záhlaví řádků.
3. Toto nastavení zobrazuje hodnoty pole v záhlaví sloupců.
4. Toto nastavení vypočte souhrnné hodnoty.
Vytvoření dotazu
-
Na kartě Vytvoření klikněte ve skupině Dotazy na Návrh dotazu.
-
V dialogovém okně Zobrazit tabulku poklikejte na každou tabulku nebo dotaz, které chcete použít jako zdroj záznamů.
Pokud používáte více zdrojů záznamů, ověřte si, jestli jsou společná pole tabulek nebo dotazů spojená. Další informace o spojování tabulek a dotazů naleznete v oddílu Viz také.
-
Zavřete dialogové okno Zobrazit tabulku.
-
Na kartě Návrh klikněte ve skupině Typ dotazu na položku Křížový.
-
V návrhovém okně dotazu poklikejte na každé pole, které chcete použít jako zdroj pro záhlaví řádků. Pro záhlaví řádků můžete vybrat až tři pole.
-
V návrhové mřížce dotazu klikněte v řádku Křížový na položku Záhlaví řádku, a to pro všechna záhlaví řádků.
Do řádku Kritéria můžete zadat výraz, kterým omezíte počet zobrazených výsledků pro dané pole. Pomocí řádku Řadit můžete nastavit řazení daného pole.
-
V návrhovém okně dotazu poklikejte na pole, které chcete použít jako zdroj záhlaví sloupců. Pro záhlaví sloupců lze vybrat pouze jedno pole.
-
V návrhové mřížce dotazu klikněte v řádku Křížový na pole Záhlaví sloupce odpovídající příslušnému záhlaví sloupce.
Zadáním výrazu do řádku Kritéria můžete omezit výsledky pro pole záhlaví sloupce. Použití výrazu kritéria s polem záhlaví sloupce ale neomezuje počet sloupců vrácených křížovým dotazem. Místo toho omezuje, které sloupce obsahují data. Předpokládejme například, že máte pole záhlaví sloupce, které má tři možné hodnoty: červenou, zelenou a modrou. Pokud u pole záhlaví sloupce použijete kritérium ='blue' , křížová tabulka stále zobrazuje sloupec pro červenou a sloupec pro zelenou, ale pouze sloupec pro modrý obsahuje data.
Pokud chcete omezit počet hodnot zobrazených v záhlaví sloupců, můžete zadat seznam pevných hodnot pomocí vlastnosti Záhlaví sloupců daného dotazu. Další informace najdete v následující části.
-
V návrhovém okně dotazu poklikejte na pole, které chcete použít k výpočtu souhrnných hodnot. Výpočet souhrnných hodnot lze provést pouze pro jedno pole.
-
V návrhové mřížce dotazu klikněte v řádku Celkem daného pole souhrnných hodnot na agregační funkci, kterou chcete použít k výpočtu hodnot.
-
V řádku Křížový příslušného pole souhrnných hodnot klikněte na položku Hodnota.
V poli souhrnných hodnot nelze používat kritéria ani toto pole řadit.
-
Na kartě Návrh klikněte ve skupině Výsledky na tlačítko Spustit.
Zadání pevných hodnot pro záhlaví sloupců
Chcete-li v záhlaví sloupců použít pevně zadané hodnoty, můžete nastavit vlastnost Záhlaví sloupců.
-
Otevřete křížový dotaz v návrhovém zobrazení.
-
Pokud se nezobrazuje seznam vlastností, zobrazte ho stisknutím klávesy F4.
-
Na listu vlastností nad kartou Obecné zkontrolujte, zda je v poli Typ výběru zadána hodnota Vlastnosti dotazu. Pokud není, klikněte do prázdného místa v prostoru nad návrhovou mřížkou dotazu.
-
Na listu vlastností zadejte na kartě Obecné do vlastnosti Záhlaví sloupců čárkou oddělený seznam hodnot, které chcete použít v záhlaví sloupců.
Některé znaky (například většina interpunkčních znamének) nejsou v záhlaví sloupců povoleny. Pokud tyto znaky použijete v seznamu hodnot, Access nahradí každý takový znak podtržítkem (_).
Syntaxe jazyka SQL pro křížový dotaz
Křížový dotaz se v jazyce SQL vyjadřuje příkazem TRANSFORM. Příkaz TRANSFORM má následující syntaxi:
TRANSFORM aggfunction
selectstatement Pivotfield [IN (hodnota1[, hodnota2[, ...]])]Příkaz TRANSFORM se skládá z těchto částí:
Část |
Popis |
aggfunction |
Agregační funkce SQL, která pracuje na vybraných datech |
selectstatement |
Příkaz SELECT |
pivotfield |
Pole nebo Výraz, které chcete použít k vytvoření záhlaví sloupců v sadě výsledků dotazu. |
hodnota1, hodnota2 |
Pevné hodnoty, které se použijí k vytvoření záhlaví sloupců. |
Zobrazení SQL neomezuje počet tabulek nebo dotazů, které můžete použít jako zdroje záznamů pro křížový dotaz. Návrh ale můžete usnadnit vytvořením výběrového dotazu, který vrátí všechna data, která chcete použít v křížovém dotazu, a pak tento výběrový dotaz použijete jako zdroj záznamů. Další informace o vytváření výběrových dotazů naleznete v oddílu Viz také.
-
Na kartě Vytvořit klikněte ve skupině Jiné na Návrh dotazu.
-
Zavřete dialogové okno Zobrazit tabulku.
-
Na kartě Návrh klikněte ve skupině Zobrazení na položku Zobrazení a potom na položku Zobrazení SQL.
-
Na kartu Objekt SQL zadejte nebo zkopírujte následující příkaz SQL:
TRANSFORM SELECT FROM GROUP BY PIVOT ;
-
Na prvním řádku za příkaz TRANSFORM zadejte výraz, který chcete použít k výpočtu souhrnných hodnot, například Součet([Částka]).
Pokud jako zdroj záznamů používáte víc tabulek nebo dotazů, zahrňte název odpovídající tabulky či dotazu do názvu konkrétního pole, například Součet([Výdaj].[Částka]).
-
Na druhý řádek za klauzuli SELECT zadejte seznam polí nebo výrazy pole, které chcete použít jako záhlaví řádků. Položky seznamu oddělte čárkami, například [Rozpočet].[ID_oddělení], [Výdaj].[Typ].
-
Ve třetím řádku za klauzuli FROM zadejte seznam tabulek nebo dotazů, které chcete použít jako zdroje záznamů, například Rozpočet, Výdaje.
-
Ve čtvrtém řádku za klauzuli GROUP BY zadejte stejný seznam polí, který jste použili v klauzuli SELECT v kroku 6.
-
V pátém řádku za klauzuli PIVOT zadejte název pole nebo výraz, který chcete použít jako záhlaví sloupců, například PIVOT [Rozpočet].[Rok].
Pokud chcete do křížového dotazu v zobrazení SQL přidat pořadí řazení, použijte k tomu klauzuli ORDER BY.
-
Vložte řádek mezi klauzule GROUP BY a PIVOT.
-
Na tento nový řádek napište ORDER BY a mezeru.
-
Zadejte název pole nebo výraz, podle kterého chcete data seřadit, například ORDER BY [Výdaje].[Třída_výdajů].
Ve výchozím nastavení klauzule ORDER BY seřadí hodnoty ve vzestupném pořadí. Pokud je chcete seřadit sestupně, zadejte za název pole nebo výraz klauzuli DESC.
-
Jestliže chcete dále řadit podle dalšího pole nebo výrazu, vložte čárku a potom zadejte požadovaný název pole nebo výraz. Řazení probíhá v pořadí, ve kterém jsou pole nebo výrazy zadány v klauzuli ORDER BY.
-
Na konci klauzule PIVOT v zobrazení SQL křížového dotazu zadejte IN a potom čárkami oddělený seznam hodnot (uzavřený v závorkách), který se použije jako záhlaví sloupců. Například IN (2007, 2008, 2009, 2010) vytvoří čtyři záhlaví sloupců: 2007, 2008, 2009, 2010.
Pokud zadáte pevnou hodnotu, která neodpovídá hodnotě pole z klauzule PIVOT, stane se tato pevná hodnota záhlavím prázdného sloupce.
-
V zobrazení SQL křížového dotazu vložte za klauzuli FROM nový řádek.
-
Zadejte klauzuli WHERE a za ni kritérium pole.
Pokud chcete použít další kritéria, můžete klauzuli WHERE rozšířit pomocí operátorů AND a OR. Můžete taky seskupit kritéria do logických sad pomocí závorek.
Někdy místo použití každé hodnoty pole pro záhlaví řádků nebo sloupců chcete hodnoty pole seskupit do oblastí a pak je použít pro záhlaví řádků nebo sloupců. Předpokládejme například, že pro záhlaví sloupců používáte pole Věk. Místo použití sloupce pro každý věk můžete raději použít sloupce, které představují věkové rozsahy.
Pomocí funkce IIf můžete ve výrazu vytvořit rozsahy hodnot a použít je jako záhlaví sloupců nebo řádků.
Tip: Chcete-li vytvořit intervaly pro pole data nebo času, zvažte použití Průvodce křížovým dotazem. Průvodce umožňuje seskupit data do intervalů Rok, Čtvrtletí, Měsíc, Datum nebo Datum a čas. Pokud by vám žádný z těchto intervalů nevyhovoval, doporučujeme vytvořit křížový dotaz v návrhovém zobrazení a potom pomocí postupu popsaného v tomto oddíle definovat požadované intervaly.
-
Otevřete křížový dotaz v návrhovém zobrazení.
-
V návrhové mřížce dotazu klikněte v řádku Pole pravým tlačítkem na prázdný sloupec a potom v místní nabídce na příkaz Lupa.
-
Do pole Lupa zadejte alias pole a za ním dvojtečku (:).
-
Zadejte příkaz IIf().
-
V závorce za příkazem IIf zadejte porovnávací výraz, který definuje první rozsah hodnot polí.
Předpokládejme například, že vytváříte oblasti pro pole Věk a chcete, aby každá oblast byla dvacet let. Porovnávaný výraz pro první oblast je [Age]<21.
-
Za porovnávacím výrazem napište čárku a potom v uvozovkách zadejte název rozsahu. Zadaný název se zobrazí v záhlaví křížového dotazu pro hodnoty spadající do příslušného rozsahu dat.
Za parametr [Věk]<21 například napište čárku a parametr "0–20 let".
-
Za názvem rozsahu napište čárku (za uvozovky) a postupujte některým z následujících způsobů:
-
Chcete-li vytvořit další rozsah, zadejte příkaz IIf() a potom zopakujte kroky číslo 5, 6 a 7.
-
U posledního rozsahu stačí zadat jenom jeho název.
Úplný vnořený výraz IIf, který by rozděloval pole Věk do rozsahů po dvaceti letech, by například mohl vypadat následujícím způsobem (zalomení řádků bylo přidáno pro snazší čitelnost):
IIf([Age]<21,"0-20 years", IIf([Age]<41,"21-40 years", IIf([Age]<61,"41-60 years", IIf([Age]<81,"61-80 years", "80+ years"))))
Poznámka: Access ukončí vyhodnocování výrazu, jakmile bude splněna jedna z podmínek funkce IIf. Spodní hranici jednotlivých rozsahů tedy není nutné zadávat, protože hodnoty, které by spadaly pod spodní hranici daného rozsahu, by už byly vyhodnoceny jako pravdivé.
-
-
V návrhové mřížce dotazu vyberte v řádku Celkem položku Seskupit podle.
-
V řádku Křížová tabulka zadejte, jestli chcete rozsahy použít pro záhlaví řádků nebo sloupců. Nezapomeňte, že pro záhlaví řádků můžete zadat jedno až tři pole, zatímco pro záhlaví sloupců jen jedno pole.
Po spuštění křížového dotazu je možné zobrazit výzvu k zadání vstupních hodnot. Můžete například používat několik záhlaví řádků, mezi nimi pole pro Zemi nebo oblast. Pokud vždy nechcete zobrazovat data ze všech zemí a oblastí, můžete nastavit zobrazení výzvy k zadání názvu země a zobrazit pouze data požadovaná uživatelem.
Výzvu k zadání parametru lze přidat k libovolnému poli záhlaví řádků.
Poznámka: Výzvu k zadání parametru můžete přidat také k poli záhlaví sloupce, tím se ale neomezí zobrazené sloupce.
-
Otevřete křížový dotaz v návrhovém zobrazeni.
-
V řádku Kritéria pro pole záhlaví řádku, pro nějž chcete zobrazit výzvu k zadání vstupních dat uživatelem, zadejte text výzvy v hranatých závorkách. Výzva se zobrazí při spuštění dotazu.
Pokud například v řádku Kritéria zadáte text [Zadejte zemi nebo oblast:], zobrazí se při spuštění dotazu dialogové okno s výzvou: „Zadejte zemi nebo oblast:“ Dále bude obsahovat vstupní pole a tlačítko OK.
Tip: Chcete-li, aby bylo zadání parametru flexibilní, můžete ve výrazu použít logický operátor Like a zástupné znaky. Namísto kritéria [Zadejte zemi nebo oblast:] tedy například můžete použít kritérium Like [Zadejte zemi nebo oblast:]&"*", aby parametr odpovídal širšímu rozsahu zadání. Použití logického operátoru Like nijak nezmění vzhled výzvy k zadání parametru.
-
Na kartě Návrh klikněte ve skupině Zobrazit/Skrýt na položku Parametry.
-
V dialogovém okně Parametry dotazu zadejte ve sloupci Parametry stejnou výzvu k zadání parametrů, kterou jste použili v řádku Kritéria. Zadejte ji také v hranatých závorkách, ale neuvádějte žádné zástupné znaky ani logický operátor Like.
-
Ve sloupci Datový typ vyberte požadovaný datový typ parametru. Datový typ by měl odpovídat datovému typu pole záhlaví řádku.
Jestliže pole, které použijete k výpočtu souhrnných hodnot v křížovém dotazu, obsahuje prázdné hodnoty, takové hodnoty budou agregačními funkcemi ignorovány. To může ovlivnit výsledky výpočtu některých agregačních funkcí. Například při výpočtu průměru je nutné přičíst všechny hodnoty a vydělit výsledek počtem hodnot. Pokud však pole obsahuje nulové hodnoty, nebudou takové nulové hodnoty započteny v celkovém počtu hodnot.
V některých případech tedy může být vhodné nahradit prázdné hodnoty nulami, aby se tyto hodnoty započetly při agregačních výpočtech. Prázdné hodnoty lze nahradit nulami pomocí funkce Nz.
Syntaxe funkce Nz
Nz ( variant [, valueifnull ] )
Syntaxe funkce Nz obsahuje následující argumenty:
Argument |
Popis |
variant |
Povinný argument. Proměnná Datový typ variant. |
valueifnull |
Nepovinný argument (pokud není použit v dotazu). Proměnná variant poskytující hodnotu, která má být vrácena, pokud má argument variant hodnotu Null. Tento argument umožňuje vrácení hodnoty jiné než nula nebo řetězec nulové délky. Poznámka: Pokud použijete funkci Nz ve výrazu v dotazu bez použití argumentu valueifnull, bude výsledkem řetězec nulové délky v polích obsahujících prázdné hodnoty. |
-
Otevřete dotaz v návrhovém zobrazení a v návrhové mřížce dotazu klikněte pravým tlačítkem do pole Hodnota.
-
V místní nabídce klikněte na příkaz Lupa.
-
Do pole Lupa uveďte do závorek název pole nebo výraz a potom před závorky zadejte příkaz Nz.
-
Těsně před pravou závorku zadejte , 0.
Pokud například použijete funkci Nz u pole s názvem „Prostoje" a změníte prázdné hodnoty na nuly, bude výsledný výraz vypadat následujícím způsobem:
Nz([Hours Lost], 0)
-
V jednoduchosti je krása: Křížové dotazy se mohou rostoucím počtem kombinací řádků stát velmi nepřehlednými. Nepoužívejte proto více záhlaví řádků, než je nutné.
-
Zvažte vytvoření křížového dotazu v postupných krocích: Neomezujte se pouze na používání tabulek. Často lze začít vytvořením Souhrnný dotaz a potom použít tento dotaz jako zdroj záznamů pro křížový dotaz.
-
Pečlivě vybírejte záhlaví sloupců: Datové listy křížových dotazů bývají přehlednější, pokud počet záhlaví sloupců zůstane relativně nízký. Jakmile se rozhodnete, která pole chcete použít pro záhlaví, vyberte jako záhlaví sloupců ta pole, která obsahují nejnižší počet různých hodnot. Pokud například dotaz vypočítává hodnotu podle věku a pohlaví, je vhodnější použít pro záhlaví sloupců spíše pohlaví než věk, protože pohlaví bude mít pravděpodobně nižší počet možných hodnot než věk.
-
V klauzuli WHERE využijte poddotaz Jako součást klauzule WHERE v křížovém dotazu můžete použít poddotaz.