Ak chcete, aby boli súhrnné údaje v programe Access ľahšie čitateľné a pochopiteľné, zvážte použitie krížového dotazu. Krížový dotaz umožňuje vypočítať súčet, priemer a ďalšie agregačné funkcie a následne zoskupiť výsledky podľa dvoch množín hodnôt – jednej naboku v údajovom hárku a druhej vodorovne v hornej časti hárka. Na páse s nástrojmi kliknite na položku Vytvoriť a následne v skupine Dotazy kliknite na položku Sprievodca dotazom. V dialógovom okne Nový dotaz dvakrát kliknite na položku Sprievodca krížovým dotazom.
Ak jedna množina hlavičiek obsahuje hodnoty dátumu, sprievodca vám pomôže zoskupiť záznamy podľa štandardných intervalov – napríklad mesačných alebo štvrťročných.
Obsah tohto článku
-
Vytvorenie krížového dotazu pomocou Sprievodcu krížovým dotazom
-
Zobrazenie výzvy na zadanie parametra pre obmedzenie záhlaví riadkov
Poznámka: Krížové dotazy nie sú vo webových aplikáciách Accessu k dispozícii a čiastočne sú podporované iba vo webovej databáze (nie je možné ich používať so žiadnymi webovými objektmi).
Prehľad
Krížový dotaz je typ dotazu Select. Po spustení krížového dotazu sa výsledky zobrazia v údajovom hárku, ktorý má odlišnú štruktúru ako iné typy údajových dotazov.
V porovnaní s jednoduchým dotazom Select, ktorý zobrazuje tie isté údaje (ako je to znázornené na nasledujúcom obrázku), môžete vďaka štruktúre krížového dotazu uľahčiť čítanie týchto výsledkov.
1. Tento dotaz Select zoskupuje súhrnné údaje vo zvislom smere podľa zamestnancov a kategórie.
2. Krížový dotaz dokáže zobraziť rovnaké údaje, ale zoskupuje údaje vo vodorovnom smere tak, aby bol údajový hárok kompaktnejší a čitateľnejší.
Pri vytváraní krížového dotazu musíte zadať, ktoré polia obsahujú hlavičky riadkov, ktoré polia obsahujú hlavičky stĺpcov a ktoré polia obsahujú údaje na vytvorenie súhrnu. Pre hlavičky stĺpcov a hodnoty na súhrn môžete zadať len jedno pole. Pre hlavičky riadkov môžete zadať najviac tri polia.
Na zadanie záhlaví riadkov, stĺpcov alebo hodnôt určených na súhrn môžete použiť aj výraz. Ďalšie informácie nájdete v téme Agregačné funkcie SQL.
1. Jeden, dva alebo tri stĺpce na tejto strane obsahujú hlavičky riadkov. Názvy polí, ktoré použijete ako hlavičky riadkov, sa zobrazia vo vrchnom riadku týchto stĺpcov.
2. Tu sa zobrazujú hlavičky riadkov. Ak použijete viac ako jedno pole pre hlavičky riadkov, počet riadkov v údajovom hárku krížového dotazu môže rýchlo narastať, pretože údajový hárok zobrazuje všetky kombinácie hlavičiek riadkov.
3. Stĺpce na tejto strane obsahujú hlavičky stĺpcov a súhrnné hodnoty. Všimnite si, že názov poľa hlavičiek stĺpcov sa v údajovom hárku nezobrazuje.
4. Tu sa zobrazujú súhrnné informácie.
Spôsoby vytvárania krížového dotazu
Použitie Sprievodcu krížovým dotazom Použitie Sprievodcu krížovým dotazom je zvyčajne najrýchlejším a najjednoduchším spôsobom vytvorenie krížového dotazu. Väčšinu práce urobí za vás, avšak niektoré možnosti nie sú v tomto Sprievodcovi k dispozícii.
Sprievodca ponúka tieto výhody:
-
Jednoducho sa používa. Ak ho chcete použiť, spustite Sprievodcu a potom odpovedzte na niekoľko pomocných otázok.
-
Ponúka možnosť automatického zoskupovania dátumov do intervalov. Ak používate pole, ktoré pre záhlavia stĺpcov obsahuje údaje typu dátum/čas, Sprievodca vám pomôže aj so zoskupením dátumov do intervalov, napríklad mesačných alebo štvrťročných.
Tip: Ak chcete pre záhlavia stĺpcov použiť hodnoty z poľa typu dátum/čas, ale chcete zoskupiť dátumy do intervalov, ktoré Sprievodca neposkytuje, napríklad fiškálny rok alebo dvojročný interval, na vytvorenie dotazu nepoužívajte Sprievodcu. Namiesto toho vytvorte krížový dotaz v návrhovom zobrazení a na vytvorenie intervalov použite výraz.
-
Môžete ho používať ako východiskový bod. Pomocou Sprievodcu môžete vytvoriť požadovaný základný krížový dotaz a následne v návrhovom zobrazení doladiť jeho návrh.
Pomocou Sprievodcu však nemôžete:
-
Použiť viac ako jednu tabuľku alebo dotaz ako zdroj záznamov.
-
Použiť výraz na vytvorenie polí.
-
Pridať výzvu na zadanie parametra.
-
Zadať zoznam pevných hodnôt, ktoré sa majú používať ako záhlavia stĺpcov.
V poslednom kroku Sprievodcu môžete upraviť dotaz v návrhovom zobrazení. Takto môžete pridať prvok návrhu pre dotaz, ktorý Sprievodca nepodporuje, ako sú napríklad ďalšie zdroje záznamov.
Práca v návrhovom zobrazení Návrhové zobrazenie poskytuje väčšiu kontrolu nad návrhom dotazu. Podporuje funkcie, ktoré nie sú v Sprievodcovi k dispozícii.
Použitie návrhového zobrazenia na vytvorenie krížového dotazu zvážte, ak chcete:
-
Mať väčšiu kontrolu nad procesom. Sprievodca urobí niekoľko rozhodnutí za vás.
-
použiť viac ako jednu tabuľku alebo dotaz ako zdroj záznamov,
-
do dotazu pridať výzvu na zadanie parametra,
-
výrazy použiť v dotaze ako polia,
-
zadať zoznam pevných hodnôt, ktoré sa majú používať ako záhlavia stĺpcov,
-
používať mriežku návrhu.
Vytvorenie dotazu v zobrazení SQL Ak chcete, môžete krížový dotaz vytvoriť v zobrazení SQL. Pomocou zobrazenia SQL však nie je možné špecifikovať typ údajov parametrov. Ak chcete v krížovom dotaze použiť parameter, musíte úpravou dotazu v návrhovom zobrazení určiť typ údajov parametrov.
Tip: Nezabudnite, že na vytvorenie krížového dotazu nemusíte použiť len jeden spôsob. Dotaz môžete vytvoriť pomocou Sprievodcu a potom návrh dotazu upraviť v návrhovom zobrazení.
Vytvorenie krížového dotazu pomocou Sprievodcu krížovým dotazom
Použitím Sprievodcu krížovým dotazom sa vyžaduje ako zdroj záznamov pre krížový dotaz použiť iba jednu tabuľku alebo dotaz. Ak sa všetky údaje, ktoré chcete zahrnúť do krížového dotazu, nenachádzajú v jednej tabuľke, vytvorte najprv dotaz Select, ktorý vráti požadované údaje. Ďalšie informácie o vytváraní dotazu Select nájdete v časti Pozrite tiež.
V tomto príklade vytvoríme krížový dotaz pomocou tabuľky Produkty zo vzorovej databázy Northwind. Chceme zobraziť počet produktov v jednotlivých kategóriách od všetkých dodávateľov.
-
Na karte Vytvoriť v skupine Dotazy kliknite na položku Sprievodca dotazom.
-
V dialógovom okne Nový dotaz kliknite na položku Sprievodca krížovým dotazom a potom kliknite na tlačidlo OK.
Spustí sa Sprievodca krížovým dotazom.
-
Na prvej strane Sprievodcu vyberte tabuľku alebo dotaz, ktorý chcete použiť na vytvorenie krížového dotazu. V tomto príklade vyberte tabuľku Produkty a potom kliknite na položku Ďalej.
-
Na ďalšej strane vyberte pole obsahujúce hodnoty, ktoré chcete použiť ako záhlavia riadkov. Ako zdroj hlavičiek riadkov môžete vybrať najviac tri polia. Čím menší počet hlavičiek riadkov použijete, tým čitateľnejší bude údajový hárok krížového dotazu. Ak pre hlavičky riadkov vyberiete viac ako jedno pole, potom bude poradie polí vybraté v sprievodcovi určovať predvolené poradie, v ktorom budú zoradené výsledky dotazu.
V tomto príklade vyberte možnosť Hodnota pre identifikáciu dodávateľa a potom kliknite na tlačidlo označené symbolom >. Všimnite si, že Access v dolnej časti dialógového okna zobrazí názov poľa spolu s ukážkou ľavej strany vzorového dotazu. Pokračujte kliknutím na položku Ďalej.
-
Na ďalšej strane vyberte pole s hodnotami , ktoré chcete použiť ako záhlavie stĺpca. Vo všeobecnosti by ste mali použiť pole s menším počtom údajov, aby ste zachovali čitateľnosť výsledkov. Mali by ste napríklad uprednostniť pole, ktoré môže obsahovať len niekoľko hodnôt (napríklad pohlavie), pred poľom obsahujúcim veľa rôznych údajov (napríklad vek).
Ak pole vybraté pre hlavičky stĺpcov obsahuje údaje typu dátum/čas, sprievodca pridá krok, v ktorom vám umožní zadať spôsob zoskupenia dátumov do intervalov (napríklad mesačných alebo štvrťročných).
V tomto príklade vyberte položku Kategória a všimnite si, že Access v dolnej časti dialógového okna zobrazí vzorové názvy kategórií spolu s hornou časťou ukážky dotazu. Pokračujte kliknutím na položku Ďalej.
-
Ak pre hlavičky stĺpcov vyberiete pole s dátumom a časom, v ďalšom kroku sprievodcu sa zobrazí výzva na zadanie intervalu, ktorý sa má použiť pri zoskupení dátumov. Môžete vybrať možnosť Rok, Štvrťrok, Mesiac, Dátum alebo Dátum a čas. Ak pre hlavičky stĺpcov nevyberiete pole s dátumom a časom, sprievodca tento krok preskočí.
-
Na nasledujúcej strane vyberte pole a funkciu, ktoré chcete použiť pri výpočte súhrnných hodnôt. Typ údajov vybratého poľa určuje dostupnosť funkcií.
Ak chcete zahrnúť alebo vylúčiť súčty riadkov, začiarknite alebo zrušte začiarknutie políčka Áno, zahrnúť súčty riadkov na tejto strane.
Ak zahrniete súčty riadkov, krížový dotaz bude obsahovať ďalšiu hlavičku riadka, ktorý používa rovnaké pole a funkciu ako pole s hodnotami. Po zahrnutí súčtov riadkov sa pridá ďalší stĺpec, ktorý bude obsahovať súhrn zostávajúcich stĺpcov. Ak napríklad krížový dotaz vypočítava priemerný vek podľa miesta a pohlavia (s údajmi o pohlaví v hlavičkách stĺpcov), toto ďalšie pole bude obsahovať výpočet priemerného veku podľa miesta bez ohľadu na pohlavie.
Ak chcete, aby Access sčítal počet produktov v každom prieniku dodávateľa a kategórie, vyberte v tomto príklade položku ID v poli Polia a položku Počet v poli Funkcie. Políčko Áno, zahrnúť súčty riadkov ponechajte začiarknuté. Access vytvorí stĺpec, ktorý predstavuje počet produktov od každého dodávateľa. Pokračujte kliknutím na položku Ďalej.
-
Na poslednej strane Sprievodcu zadajte názov dotazu a vyberte, či chcete zobraziť výsledky alebo upraviť návrh dotazu.
Funkciu použitú na výpočet súčtov riadkov môžete zmeniť úpravou krížového dotazu v návrhovom zobrazení.
-
Ak ste v tomto príklade použili tabuľku Produkty z databázy Northwind, krížový dotaz zobrazí zoznam s názvami dodávateľov v podobe riadkov, názvy kategórií produktov ako stĺpce a počet produktov v jednotlivých prienikoch.
Použitím návrhového zobrazenia pri vytváraní krížového dotazu môžete použiť neobmedzený počet zdrojov záznamov (tabuľky a dotazy). Jednoduchosť návrhu však môžete zachovať vytvorením najprv dotazu Select, ktorý vráti všetky požadované údaje, a následným použitím tohto dotazu, ako jediného zdroja záznamu pre krížový dotaz. Ďalšie informácie o vytváraní krížového dotazu nájdete v časti Pozrite tiež.
Keď vytvárate krížový dotaz v návrhovom zobrazení, používate pri tom riadky Celkom a Krížová tabuľka v mriežke návrhu. Pomocou týchto riadkov určíte, hodnoty ktorých polí sa použijú ako hlavičky stĺpcov, hlavičky riadkov a pre ktoré hodnoty polí sa vypočíta súčet, počet alebo iná funkcia.
1. Nastavenia v týchto riadkoch určujú, či sa stĺpec použije pre hlavičky riadkov, hlavičky stĺpcov alebo pre súhrnné hodnoty.
2. Toto nastavenie zobrazuje hodnoty poľa ako hlavičky riadkov.
3. Toto nastavenie zobrazuje hodnoty poľa ako hlavičky stĺpcov.
4. Tieto nastavenia vracajú súhrnné hodnoty.
Vytvorenie dotazu
-
Na karte Vytvoriť kliknite v skupine Dotazy na položku Návrh dotazu.
-
V dialógovom okne Zobrazenie tabuľky kliknite dvakrát na všetky tabuľky a dotazy, ktoré chcete použiť ako zdroj záznamov.
Ak používate viac zdrojov záznamov, uistite sa, že sú tabuľky alebo dotazy spojené prostredníctvom polí, ktoré majú spoločné. Ďalšie informácie o spájaní tabuliek a dotazov nájdete prostredníctvom časti Pozrite tiež.
-
Zatvorte dialógové okno Zobrazenie tabuľky.
-
Na karte Návrh v skupine Typ dotazu kliknite na položku Krížový.
-
V okne návrhu dotazu kliknite dvakrát na každé pole, ktoré chcete použiť ako zdroj pre hlavičky riadkov. Môžete vybrať najviac tri polia.
-
V mriežke návrhu dotazu vyberte v riadku Krížová tabuľka položku Záhlavie riadka pre každé pole, ktoré ste pridali ako hlavičku riadkov.
Do riadka Kritériá môžete zadať výraz na obmedzenie výsledkov pre toto pole. Môžete použiť aj riadok Zoradiť a zadať spôsob zoradenia pre dané pole.
-
V okne návrhu dotazu kliknite dvakrát na pole, ktoré chcete použiť ako zdroj pre hlavičky stĺpcov. Môžete vybrať len jedno pole.
-
V mriežke návrhu dotazu vyberte pre toto pole v riadku Krížová tabuľka položku Záhlavie stĺpca.
Do riadka Kritériá môžete zadať výraz na obmedzenie výsledkov pre pole hlavičiek stĺpcov. Zadanie výrazu pre kritériá však v prípade poľa hlavičiek stĺpcov neobmedzí počet stĺpcov, ktoré vráti krížový dotaz. Namiesto toho určí, ktoré stĺpce budú obsahovať údaje. Predpokladajme napríklad, že máte pole hlavičiek stĺpcov, ktoré môže obsahovať tri hodnoty: červená, zelená a modrá. Ak pre pole hlavičiek stĺpcov použijete kritérium ='modrá', krížový dotaz bude aj naďalej zobrazovať stĺpce pre červenú a zelenú, ale len stĺpec pre hodnotu „modrá“ bude obsahovať údaje.
Ak chcete určiť, ktoré hodnoty sa budú zobrazovať ako záhlavia stĺpcov, zadajte zoznam pevných hodnôt pomocou vlastnosti dotazu Záhlavia stĺpcov. Ďalšie informácie nájdete v nasledujúcej časti.
-
V okne návrhu dotazu dvakrát kliknite na pole, ktoré chcete použiť na výpočet súhrnných hodnôt. Na výpočet súhrnných hodnôt môžete použiť len jedno pole.
-
V mriežke návrhu dotazu vyberte v riadku Celkom poľa pre súhrnné hodnoty agregačnú funkciu, ktorá sa má použiť na výpočet hodnôt.
-
V riadku Krížová tabuľka poľa pre súhrnné hodnoty vyberte položku Hodnota.
Do poľa súhrnných hodnôt môžete zadať kritériá určujúce spôsob zoradenia.
-
Prejdite na kartu Návrh a v skupine Výsledky kliknite na položku Spustiť.
Zadanie pevných hodnôt pre záhlavia stĺpcov
Ak chcete zadať pevné hodnoty, ktoré sa budú používať ako hlavičky stĺpcov, môžete na to použiť vlastnosť dotazu Záhlavia stĺpcov.
-
Otvorte krížový dotaz v návrhovom zobrazení.
-
Ak sa nezobrazuje hárok vlastností, stlačte kláves F4.
-
V hárku vlastností (hneď nad kartou Všeobecné) skontrolujte, či je Typ výberu nastavený na hodnotu Dotaz – vlastnosti. Ak nie, kliknite na prázdne miesto nad mriežkou návrhu dotazu.
-
V hárku vlastností na karte Všeobecné zadajte do vlastnosti Záhlavia stĺpcov zoznam hodnôt, ktoré chcete použiť ako hlavičky stĺpcov. Hodnoty oddeľte čiarkami.
Záhlavia stĺpcov nepodporujú niektoré znaky (napríklad väčšinu interpunkčných znamienok). Ak v zozname hodnôt použijete tieto znaky, Access ich nahradí znakom podčiarknutia (_).
Syntax SQL pre krížový dotaz
Krížový dotaz je v jazyku SQL vyjadrený ako príkaz TRANSFORM. Príkaz TRANSFORM má nasledujúcu syntax:
Transformovať aggfunction
selectstatement Pivotfield [IN (hodnota1[, hodnota2[, ...]])]Príkaz TRANSFORM pozostáva z týchto častí:
Časť |
Popis |
aggfunction |
Agregačná funkcia SQL, ktorá pracuje s vybratými údajmi. |
príkazselect |
Príkaz SELECT. |
pivotfield |
Pole alebo výraz, ktorý chcete použiť na vytvorenie záhlaví stĺpcov v množine výsledkov dotazu. |
hodnota1, hodnota2 |
Pevné hodnoty, ktoré sa používajú na vytvorenie záhlaví stĺpcov. |
V zobrazení SQL sa nevyskytuje obmedzenie počtu tabuliek ani dotazov, ktoré môžete použiť ako zdroje záznamov pre krížový dotaz. Jednoduchosť návrhu však môžete zachovať vytvorením dotazu Select, ktorý vráti všetky požadované údaje, ktoré chcete v krížovom dotaze použiť, a následným použitím tohto dotazu ako jediného zdroja záznamu. Ďalšie informácie o vytváraní krížového dotazu nájdete v časti Pozrite tiež.
-
Prejdite na kartu Vytvoriť a v skupine Ďalšie kliknite na položku Návrh dotazu.
-
Zatvorte dialógové okno Zobrazenie tabuľky.
-
Na karte Návrh kliknite v skupine Zobrazenia na položku Zobraziť a potom kliknite na položku Zobrazenie SQL.
-
Na karte Objekt SQL zadajte alebo prilepte nasledujúce príkazy SQL:
TRANSFORM SELECT FROM GROUP BY PIVOT ;
-
Do prvého riadka zadajte za príkaz TRANSFORM výraz, ktorý sa má použiť na výpočet súhrnných hodnôt, napríklad Sum([Množstvo]).
Ak ako zdroj záznamov používate viac ako jednu tabuľku alebo dotaz, zahrňte názov tabuľky alebo dotazu do jednotlivých názvov polí, napríklad Sum([Výdavky].[Množstvo]).
-
Do druhého riadka zadajte za príkaz SELECT zoznam polí alebo výrazov polí, ktoré chcete v záhlaví riadkov použiť. Položky v zozname oddeľte bodkočiarkami, napríklad [Rozpočet].[ID_Oddelenia]; [Výdavky].[Typ].
-
Do tretieho riadka zadajte za príkaz FROM zoznam tabuliek a dotazov, ktoré používate ako zdroje dotazov, napríklad Rozpočet, Výdavky.
-
Do štvrtého riadka zadajte za príkaz GROUP BY rovnaký zoznam polí, ktorý ste použili v klauzule SELECT v kroku 6.
-
Do piateho riadka zadajte za príkaz PIVOT názov poľa alebo výraz, ktorý chcete pre záhlavie stĺpca použiť, napríklad PIVOT [Rozpočet].[Rok].
Ak chcete do krížového dotazu v zobrazení SQL pridať poradie zoradenia, použite klauzulu ORDER BY.
-
Medzi klauzulu GROUP BY a PIVOT vložte riadok.
-
V novom riadku zadajte ORDER BY a potom medzeru.
-
Zadajte názov poľa alebo výraz, do ktorého chcete pridať zoradenie, napríklad ORDER BY [Náklady].[Skupina_nákladov]
Predvolene bude klauzula ORDER BY zoraďovať hodnoty vo vzostupnom poradí. Ak chcete údaje zoradiť v zostupnom poradí, zadajte DESC a potom názov poľa alebo výraz.
-
Ak chcete vykonať zoradenie v ďalšom poli alebo výraze, zadajte medzeru a potom zadajte názov ďalšieho poľa alebo výrazu. Zoradenie sa zobrazí v poradí, v akom sa polia alebo výrazy zobrazujú v klauzule ORDER BY.
-
Na konci klauzuly PIVOT v zobrazení SQL krížového dotazu zadajte IN a potom zoznam s hodnotami oddelenými čiarkou (uzavreté v zátvorkách), ktoré chcete použiť ako záhlavia stĺpcov. Napríklad IN (2007, 2008, 2009, 2010) vytvára štyri záhlavia stĺpcov: 2007, 2008, 2009, 2010.
Ak zadáte pevnú hodnotu, ktorá nezodpovedá hodnote poľa z poľa klauzuly PIVOT, stane sa táto pevná hodnota záhlavím stĺpca pre prázdny stĺpec.
-
Za klauzulu FROM v zobrazení SQL krížového dotazu vložte nový riadok.
-
Napíšte WHEREa potom kritérium poľa.
Ak chcete použiť ďalšie kritériá, môžete použiť operátory AND a OR, pomocou ktorých rozšírite klauzulu WHERE. Použitím zátvoriek môžete kritériá zoskupiť do logických skupín.
Niekedy je vhodné namiesto použitia jednotlivých hodnôt pre záhlavie riadka alebo stĺpca zoskupiť tieto hodnoty poľa do rozsahov a potom tieto rozsahy použiť v záhlaviach riadkov a stĺpcov. Predpokladajme napríklad, že ako záhlavia stĺpcov používate pole Vek. Namiesto stĺpca pre každú hodnotu veku pravdepodobne radšej použijete stĺpce, ktoré predstavujú vekové kategórie.
Na vytvorenie rozsahov pre záhlavia riadkov alebo stĺpcov môžete použiť výraz s funkciou IIf.
Tip: Ak chcete vytvoriť intervaly pre pole s dátumom a časom, zvážte použitie Sprievodcu krížovým dotazom. Sprievodca ponúka možnosť zoskupiť dátumy do intervalov Rok, Štvrťrok, Mesiac, Dátum alebo Dátum a čas. Ak vám nevyhovuje ani jeden z týchto intervalov, mali by ste krížový dotaz vytvoriť v návrhovom zobrazení a pomocou metódy popísanej v tejto časti vytvoriť požadované intervaly.
-
Otvorte krížový dotaz v návrhovom zobrazení.
-
V mriežke návrhu dotazu kliknite v riadku Pole pravým tlačidlom myši na prázdny stĺpec a potom kliknite v kontextovej ponuke na príkaz Lupa.
-
V dialógovom okne Lupa zadajte alias poľa a za ním dvojbodku (:).
-
Zadajte IIf().
-
Do zátvoriek funkcie IIf zadajte porovnávací výraz, ktorý určuje prvý rozsah pre hodnoty v poli.
Predpokladajme napríklad, že vytvárate rozsahy pre pole Vek a chcete vytvoriť vekové kategórie s intervalom 20 rokov. Porovnávací výraz pre prvý rozsah je [Vek]<21.
-
Za porovnávacím výrazom napíšte čiarku a potom zadajte názov (uzavretý v úvodzovkách) pre tento rozsah. Zadaný názov sa bude zobrazovať v hlavičke krížového dotazu pre hodnoty, ktoré spadajú do zadaného rozsahu.
Príklad: za výraz [Vek]<21 napíšte čiarku (,) a potom "0-20 rokov".
-
Napíšte čiarku za názov rozsahu (za úvodzovkami) a potom použite jeden z nasledujúcich postupov:
-
Ak chcete vytvoriť ďalší rozsah, zadajte IIf() a zopakujte kroky 5, 6 a 7.
-
V prípade posledného rozsahu zadajte len názov rozsahu.
Dokončený vnorený výraz IIf, ktorý rozdeľuje pole Vek na 20-ročné intervaly, môže vyzerať napríklad takto (zlomy riadkov sú pridané kvôli väčšej prehľadnosti):
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: Pri vyhodnocovaní tohto výrazu sa Access zastaví vtedy, keď sa príkaz IIf vyhodnotí ako true. Nemusíte zadávať spodnú hranicu každého rozsahu, pretože všetky hodnoty z nižšieho rozsahu by sa už skôr vyhodnotili ako true.
-
-
V mriežke návrhu dotazu vyberte v riadku Celkom hodnotu Zoskupiť podľa.
-
V riadku Krížová tabuľka zadajte, či sa majú tieto rozsahy použiť ako hlavičky riadkov alebo stĺpcov. Zapamätajte si, že môžete zadať až tri hlavičky riadkov, ale iba jednu hlavičku stĺpcov.
V prípade potreby môžete navrhnúť krížový dotaz tak, aby zobrazoval pri spustení výzvu na zadanie vstupných hodnôt. Predpokladajme napríklad, že používate viac hlavičiek riadkov, pričom jedna hlavička je Krajina alebo oblasť. Namiesto zobrazenia údajov pre všetky krajiny alebo oblasti chcete, aby sa najprv dotaz spýtal na názov krajiny a potom zobrazil výsledky podľa hodnoty, ktorú zadal používateľ.
Výzvu na zadanie parametra môžete pridať do ľubovoľného poľa hlavičiek riadkov.
Poznámka: Do poľa záhlavia stĺpca môžete pridať aj výzvu na zadanie parametra, čím sa však počet zobrazovaných stĺpcov neobmedzí.
-
Otvorte krížový dotaz v návrhovom zobrazení.
-
Do riadka Kritériá poľa hlavičiek riadkov, pre ktoré chcete zobrazovať výzvu na zadanie vstupnej hodnoty zo strany používateľa, zadajte text otázky uzatvorený v hranatých zátvorkách. Text otázky sa zobrazí ako výzva pri spustení dotazu.
Ak zadáte napríklad otázku [Ktorá krajina alebo oblasť?] do riadka Kritériá, pri spustení dotazu sa zobrazí dialógové okno, ktoré bude obsahovať otázku „Ktorá krajina alebo oblasť?“, textové pole na zadanie vstupnej hodnoty a tlačidlo OK.
Tip: Ak chcete, aby bol parameter flexibilný, použite zreťazenie výrazu so zástupnými znakmi a operátorom Like. Namiesto kritéria [Ktorá krajina alebo oblasť?] môžete použiť výraz Like [Ktorá krajina alebo oblasť]&"*", čím umožníte parametru nájsť zhodu so širším rozsahom vstupných hodnôt. Použitie operátora Like nezmení vzhľad výzvy na zadanie parametra.
-
Na karte Návrh kliknite v skupine Zobraziť alebo skryť na položku Parametre.
-
V dialógovom okne Parametre dotazu zadajte do stĺpca Parameter rovnakú výzvu na zadanie parametra, akú ste použili v riadku Kritériá. Použite hranaté zátvorky, ale nepoužívajte žiadne zreťazené zástupné znaky ani operátor Like.
-
V stĺpci Typ údajov vyberte typ údajov parametra. Typ údajov by sa mal zhodovať s typom údajov poľa, ktoré ste použili pre hlavičky riadkov.
Ak pole, ktoré používate v krížovom dotaze na výpočet súhrnných hodnôt, obsahuje hodnoty null, tieto hodnoty sa budú ignorovať pri všetkých agregačných funkciách. V prípade niektorých agregačných funkcií tak môže dôjsť k ovplyvneniu výsledkov. Napríklad pri výpočte priemernej hodnoty sa najprv spočítajú všetky hodnoty a potom sa výsledok vydelí počtom hodnôt. Ak však pole obsahuje hodnoty null, tieto hodnoty sa nezapočítajú do počtu hodnôt.
V niektorých prípadoch je lepšie nahradiť hodnoty null nulami, aby sa tieto hodnoty zahrnuli do agregačných výpočtov. Na nahradenie hodnôt null nulami môžete použiť funkciu Nz.
Syntax funkcie Nz
Nz ( variant [, valueifnull ] )
Syntax funkcie Nz má tieto argumenty:
Argument |
Popis |
variant |
Povinné. Premenná pre typ údajov Variant. |
valueifnull |
Voliteľné (ak sa nepoužíva v dotaze). Typ údajov Variant poskytujúci hodnotu, ktorá sa má vrátiť, ak má argument variant hodnotu null. Tento argument umožňuje vrátiť hodnotu inú ako nula alebo reťazec s nulovou dĺžkou. Poznámka: Ak použijete funkciu Nz vo výraze v dotaze bez použitia argumentu valueifnull, výsledkom bude reťazec s nulovou dĺžkou v poliach, ktoré obsahujú hodnoty null. |
-
Otvorte dotaz v návrhovom zobrazení. V mriežke návrhu dotazu kliknite pravým tlačidlom myši na pole Hodnota.
-
V kontextovej ponuke kliknite na príkaz Lupa.
-
Do poľa Lupa zadajte do zátvoriek názov poľa alebo výraz a potom pred zátvorky napíšte Nz.
-
Hneď pred pravú zátvorku zadajte , 0.
Ak napríklad chcete použiť funkciu Nz na nahradenie hodnôt null za nuly v poli s názvom Nevyužité hodiny, dokončený výraz by mal vyzerať takto:
Nz([Hours Lost], 0)
-
Dotazy by mali byť jednoduché S narastajúcim počtom kombinácií riadkov sa stávajú krížové dotazy zle čitateľné. Nepoužívajte viac hlavičiek riadkov, ako je nevyhnutné.
-
Vytvárajte svoje krížové dotazy postupne Neobmedzujte sa len na používanie tabuliek. Často je výhodné začať vytvorením súhrnný dotaz a tento dotaz potom použiť ako zdroj záznamov pre krížový dotaz.
-
Pozorne si vyberte pole pre hlavičky stĺpcov Údajové hárky krížových dotazov sú čitateľnejšie, keď použijete relatívne malý počet hlavičiek stĺpcov. Keď ste už identifikovali polia, ktoré chcete použiť ako hlavičky, pre hlavičky stĺpcov je najvhodnejšie vybrať pole, ktoré obsahuje najmenej rôznych hodnôt. Ak napríklad dotaz vypočítava hodnoty podľa veku a pohlavia, pre hlavičky stĺpcov zvážte použitie stĺpca s informáciami o pohlaví, lebo zvyčajne obsahuje menší počet hodnôt ako vek.
-
Použitie poddotazu v klauzule WHERE V krížovom dotaze môžete použiť poddotaz ako súčasť klauzuly WHERE.