Hatókör
Access 2010

Ez a cikk bemutatja, hogyan használhatja a leggyakoribb értékeket tartalmazó lekérdezéseket és összesítő lekérdezéseket egy rekordhalmaz legutóbbi vagy legkorábbi dátumainak megkereséséhez. Ez számos üzleti kérdés megválaszolásában segíthet, például amikor egy ügyfél utoljára adott le rendelést, vagy hogy melyik öt negyedév volt a legjobb az értékesítéshez városonként.

Tartalom

Áttekintés

Az adatokat rangsorolhatja, és áttekintheti a legmagasabban rangsorolt elemeket a legfelső értékek lekérdezésével. A legfelső értékű lekérdezés egy választó lekérdezés, amely az értékek megadott számát vagy százalékát adja vissza az eredmények tetejéről, például egy webhely öt legnépszerűbb lapjáról. A felső értékek lekérdezését bármilyen értékhez használhatja– nem kell számnak lenniük.

Ha rangsorolás előtt szeretné csoportosítani vagy összegezni az adatokat, akkor nem kell felső értékeket tartalmazó lekérdezést használnia. Tegyük fel például, hogy meg kell keresnie egy adott dátum értékesítési számát minden olyan városhoz, ahol a vállalat működik. Ebben az esetben a városok kategóriákká válnak (meg kell keresnie a városonkénti adatokat), ezért összeg lekérdezést kell használnia.

Ha a legfelső értékeket tartalmazó lekérdezéssel olyan rekordokat keres, amelyek egy táblában vagy rekordcsoportban a legújabb vagy legkorábbi dátumokat tartalmazzák, számos üzleti kérdésre válaszolhat, például az alábbiakra:

  • Ki volt a legtöbb értékesítés az utóbbi időben?

  • Mikor adott le utoljára rendelést egy ügyfél?

  • Mikor lesz a következő három születésnap a csapatban?

Felső értékű lekérdezés létrehozásához először hozzon létre egy választó lekérdezést. Ezután rendezze az adatokat a kérdésének megfelelően – akár a felsőt, akár az alsót keresi. Ha csoportosítania vagy összegeznie kell az adatokat, a választó lekérdezést összegző lekérdezéssé alakíthatja. Ezután egy összesítő függvényt használhat, például a Max vagy a Min függvényt a legmagasabb vagy legalacsonyabb érték visszaadásához, illetve az Első vagy az Utolsó függvényt a legkorábbi vagy a legújabb dátum visszaadásához.

Ez a cikk feltételezi, hogy a használt dátumértékek dátum/idő adattípussal rendelkeznek. Ha a dátumértékek szövegmezőben vannak, akkor.

Érdemes lehet szűrőt használni a felső értékek lekérdezése helyett

Egy szűrő általában jobb, ha egy adott dátumot szem előtt tart. Annak meghatározásához, hogy létre kell-e hoznia egy felső értékeket tartalmazó lekérdezést, vagy szűrőt kell alkalmaznia, vegye figyelembe a következőket:

  • Ha az összes olyan rekordot szeretné visszaadni, ahol a dátum egyezik, egy adott dátumnál korábbi vagy későbbi, használjon szűrőt. Például az április és július közötti értékesítések dátumainak megtekintéséhez szűrőt kell alkalmaznia.

  • Ha olyan rekordmennyiséget szeretne visszaadni, amely egy mezőben a legutóbbi vagy a legújabb dátummal rendelkezik, és nem ismeri a pontos dátumértékeket, vagy nem számít, akkor hozzon létre egy felső értékeket tartalmazó lekérdezést. Az öt legjobb értékesítési negyedév megtekintéséhez például használjon egy felső értékeket tartalmazó lekérdezést.

A szűrők létrehozásával és használatával kapcsolatos további információkért lásd: Szűrő alkalmazása a kijelölt rekordok access-adatbázisban való megtekintéséhez.

Vissza a lap tetejére

Mintaadatok előkészítése a példákkal együtt

A cikkben ismertetett lépések az alábbi mintatáblákban szereplő adatokat használják.

Az Alkalmazottak tábla   

LastName

Utónév

Cím

Város

CountryOrR egion

Születési dátum

Felvétel dátuma

Barkóczi

Barkóczi

Fő út 1.

Győr

USA

1968. február 5.

1994. június 10.

Heloo

Waleed

Petőfi utca 5.

Nagykanizsa

USA

1957. május 22.

1996. nov. 22.

Pozsony

Guido

3122 75. Ave. S.W.

Kecskemét

USA

1960. nov. 11.

2000. március 11.

Bagel

Jean Philippe

Berkenye sgt. 1.

Debrecen

UK

1964. március 22.

1998. június 22.

Ár

Julian

Orgona utca 2.

Szolnok

Mexikó

1972. június 5.

2002. január 5.

Hughes

Christine

3122 75th St. S.

Kecskemét

USA

1970. január 23.

1999. ápr. 23.

Szabolcs

Deák

Lejtő utca 67.

Eger

USA

1964. április 14.

2004. október 14.

Birkby

Dana

2 Nosey Pkwy

Pécs

USA

1959. október 29.

1997. március 29.

Az EventType tábla   

TypeID

Esemény típusa

1

Termékbevezetés

2

Vállalati függvény

3

Privát függvény

4

Alapbeemelő

5

Trade Show

6

Előadás

7

Koncert

8

Kiállít

9

Utcai vásár

A Vevők tábla:   

Ügyfél-azonosító

Cég

Kapcsolattartó

1

Contoso, Ltd. Ábra

Jonathan Haas

2

Dejójáték Kft.

Ellen Adams

3

Fabrikam

Carol Philips

4

Wingtip Toys

Lucio Iallo

5

A. Kitűző jel

Mandar Samant

6

Adventure Works

Brian Burke

7

Design Institute

Jaka Stele

8

Képzőművészeti Iskola

Milena Duomanova

Az Események tábla   

EventID (Eseményazonosító)

Esemény típusa

Vevő

Esemény dátuma

Ár

1

Termékbevezetés

Contoso, Ltd.

4/14/2011

1 000 000 Ft

2

Vállalati függvény

Dejójáték Kft.

4/21/2011

800 000 Ft

3

Trade Show

Dejójáték Kft.

2011.05.01.

25 000 USD

4

Kiállít

Általános Tervezőintézet

5/13/2011

4500 USD

5

Trade Show

Contoso, Ltd.

5/14/2011

55 000 USD

6

Koncert

Képzőművészeti Iskola

5/23/2011

1 200 000 Ft

7

Termékbevezetés

A. Kitűző jel

6/1/2011

1 500 000 Ft

8

Termékbevezetés

Wingtip Toys

6/18/2011

2 100 000 Ft

9

Alapbeemelő

Adventure Works

6/22/2011

1300 USD

10

Előadás

Általános Tervezőintézet

6/25/2011

2450 USD

11

Előadás

Contoso, Ltd.

2011.07.04.

3800 USD

12

Utcai vásár

Általános Tervezőintézet

2011.07.04.

550 000 Ft

Megjegyzés: A szakasz lépései feltételezik, hogy az Ügyfelek és az Eseménytípus táblák az Egy-a-többhöz kapcsolatok "egy" oldalán találhatók az Events táblával. Ebben az esetben az Events tábla a CustomerID és TypeID mezőket osztja meg. A következő szakaszokban ismertetett összesítő lekérdezések nem működnek e kapcsolatok nélkül.

Mintaadatok beillesztése Excel-munkalapokra

  1. Indítsa el az Excelt. Megnyílik egy üres munkafüzet.

  2. Munkalap beszúrásához nyomja le a SHIFT+F11 billentyűkombinációt (négyre lesz szüksége).

  3. Másolja az adatokat az egyes mintatáblákból egy üres munkalapra. Foglalja bele az oszlopfejléceket (az első sort).

Adatbázistáblák létrehozása a munkafüzetekből

  1. Jelölje ki az első munkalap adatait, beleértve az oszlopfejléceket is.

  2. Kattintson a jobb gombbal a navigációs ablakra, majd kattintson a Beillesztés parancsra.

  3. Kattintson az Igen gombra annak ellenőrzéséhez, hogy az első sor tartalmaz-e oszlopfejléceket.

  4. Ismételje meg az 1–3. lépést minden többi munkalapon.

A legutóbbi dátum megkeresése

Az ebben a szakaszban ismertetett lépések a mintaadatok segítségével szemléltetik a legfelső értékek lekérdezésének létrehozásának folyamatát.

Alapszintű legfelső értékeket tartalmazó lekérdezés létrehozása

  1. Kattintson a Létrehozás lap Lekérdezések csoportjának Lekérdezéstervező gombjára.

  2. Kattintson duplán az Employees (Alkalmazottak) táblára, majd kattintson a Close (Bezárás) gombra.

    Ha a mintaadatokat használja, adja hozzá az Employees táblát a lekérdezéshez.

  3. Adja hozzá a lekérdezésben használni kívánt mezőket a tervezőrácshoz. Kattintson duplán az egyes mezőkre, vagy húzza az egyes mezőket a Mező sor üres cellájába.

    Ha a mintatáblát használja, adja hozzá az Utónév, a Vezetéknév és a Születési dátum mezőt.

  4. A felső vagy alsó értékeket tartalmazó mezőben (ha a mintatáblát használja, a Születési dátum mezőben) kattintson a Rendezés sorra, és válassza a Növekvő vagy a Csökkenő lehetőséget.

    A csökkenő rendezési sorrend a legutóbbi dátumot, a növekvő rendezési sorrend pedig a legkorábbi dátumot adja vissza.

    Fontos: Csak a dátumokat tartalmazó mezőkhöz kell értéket beállítania a Rendezés sorban. Ha egy másik mezőhöz rendezési sorrendet ad meg, a lekérdezés nem a kívánt eredményeket adja vissza.

  5. A Tervezés lap Eszközök csoportjában kattintson az Összes elem melletti lefelé mutató nyílra (a leggyakoribb értékek listájára), és adja meg a megtekinteni kívánt rekordok számát, vagy válasszon egy lehetőséget a listából.

  6. A lekérdezés futtatásához és az eredmények Adatlap nézetben való megjelenítéséhez kattintson a Gombképfuttatása gombra.

  7. Mentse a lekérdezést NextBirthDays néven.

Láthatja, hogy az ilyen típusú felső értékek lekérdezése képes megválaszolni az alapszintű kérdéseket, például hogy ki a vállalat legidősebb vagy legfiatalabb személye. A következő lépések azt mutatják be, hogyan használhat kifejezéseket és más feltételeket a lekérdezéshez való teljesítmény és rugalmasság hozzáadásához. A következő lépésben látható feltételek a következő három alkalmazotti születésnapot adják vissza.

Feltétel hozzáadása a lekérdezéshez

Ezek a lépések az előző eljárásban létrehozott lekérdezést használják. Egy másik felső értékeket tartalmazó lekérdezést is követhet, ha az tényleges dátum-/időadatokat tartalmaz, nem szöveges értékeket.

Tipp:  Ha jobban meg szeretné érteni a lekérdezés működését, váltson a Tervező nézet és az Adatlap nézet között minden lépésben. Ha meg szeretné tekinteni a tényleges lekérdezési kódot, váltson SQL-nézetre. A nézetek közötti váltáshoz kattintson a jobb gombbal a lekérdezés tetején található fülre, majd kattintson a kívánt nézetre.

  1. A navigációs ablakban kattintson a jobb gombbal a NextBirthDays lekérdezésre, majd kattintson a Tervező nézet parancsra.

  2. A lekérdezéstervező rács BirthDate jobb oldalán található oszlopba írja be a következőt:MonthBorn: DatePart("m",[BirthDate]).Ez a kifejezés kinyeri a hónapot a BirthDate függvényből a DatePart függvénnyel.

  3. A lekérdezéstervező rács következő oszlopába írja be a következőt:DayOfMonthBorn: DatePart("d",[BirthDate])Ez a kifejezés a DatePart függvénnyel nyeri ki a hónap napját a BirthDate függvényből.

  4. Törölje a jelet a Két beírt kifejezés megjelenítése sor jelölőnégyzetéből.

  5. Kattintson az egyes kifejezések Rendezés sorára, majd válassza a Növekvő lehetőséget.

  6. A Születési dátum oszlop Feltétel sorában írja be a következő kifejezést:Month([Birth Date]) > Month(Date()) OR Month([Birth Date])= Month(Date()) AND Day([Birth Date])>Day(Date())Ez a kifejezés a következőket teszi:

    • Month( [Születési dátum]) > Month(Date()) azt határozza meg, hogy az egyes alkalmazottak születési dátuma egy jövőbeli hónapba esik.

    • A Month([Születési dátum])= Month(Date()) And Day([Születési dátum])>Day(Date()) azt adja meg, hogy ha a születési dátum az aktuális hónapban következik be, a születésnap az aktuális napra esik vagy azt követően.

      Röviden, ez a kifejezés nem tartalmazza azokat a rekordokat, ahol a születésnap január 1. és az aktuális dátum között történik.

      Tipp:  A lekérdezési feltételek kifejezésére további példákat a Példák lekérdezési feltételekre című cikkben talál.

  7. A Tervezés lap Lekérdezés beállítása csoportjában írja be a 3 értéket a Return mezőbe.

  8. A Tervezés lap Eredmények csoportjában kattintson a Futtatás Gombkép gombra.

Megjegyzés:  Előfordulhat, hogy a saját adatait használó saját lekérdezésében a megadottnál több rekord jelenik meg. Ha az adatok több olyan rekordot tartalmaznak, amelyek a legfelső értékek között szerepelnek, a lekérdezés akkor is visszaadja az összes ilyen rekordot, ha az azt jelenti, hogy a kívántnál több rekordot ad vissza.

Vissza a lap tetejére

Rekordcsoportok legutóbbi vagy legutóbbi dátumainak megkeresése

Az összesítő lekérdezéssel megkeresheti a csoportokba tartozó rekordok legkorábbi vagy legkésőbbi dátumait, például a város szerint csoportosított eseményeket. Az összegző lekérdezés olyan választó lekérdezés, amely összesítő függvényeket (például Csoportosítási szempont, Min, Max, Darabszám, Első és Utolsó) használ az egyes kimeneti mezők értékeinek kiszámításához.

Adja meg a kategóriákhoz használni kívánt mezőt – csoportosításhoz – és az összesíteni kívánt értékeket tartalmazó mezőt. Ha más kimeneti mezőket is megad , például az ügyfelek nevét, amikor eseménytípus szerint csoportosít, a lekérdezés ezeket a mezőket is használja a csoportok létrehozásához, és módosítja az eredményeket, hogy ne válaszoljanak az eredeti kérdésre. Ha más mezőkkel szeretné címkézni a sorokat, hozzon létre egy további lekérdezést, amely az összegző lekérdezést használja forrásként, és adja hozzá a további mezőket a lekérdezéshez.

Tipp:  A lekérdezések lépésekben történő létrehozása nagyon hatékony stratégia a speciálisabb kérdések megválaszolására. Ha problémába ütközik egy bonyolult lekérdezés beolvasása során, fontolja meg, hogy fel tudja-e bontani egyszerűbb lekérdezések sorozatára.

Összegző lekérdezés létrehozása

Ez az eljárás az Események mintatáblát és az EventType mintatáblát használja a kérdés megválaszolásához:

Mikor volt az egyes eseménytípusok legutóbbi eseménye, a koncertek kivételével?

  1. Kattintson a Létrehozás lap Lekérdezések csoportjának Lekérdezéstervező gombjára.

  2. Kattintson duplán az Események és az EventType táblákra. Minden tábla megjelenik a lekérdezéstervező felső szakaszában.

  3. Kattintson duplán az EventType tábla EventType mezőjére és az EventDate mezőre az Események táblából, hogy a mezőket hozzáadja a lekérdezés tervezőrácsához.

  4. A lekérdezés tervezőrácsában az EventType mező Feltétel sorába írja be <>Koncert kifejezést.

    Tipp:  A feltételkifejezésekre további példákat a Példák lekérdezési feltételekre című cikkben talál.

  5. Kattintson a Tervezés lap Megjelenítés/elrejtés csoportjának Összesítés gombjára.

  6. A lekérdezéstervező rácsban kattintson az EventDate mező Összeg sorára, majd a Max gombra.

  7. Kattintson a Tervezés lap Eredmények csoportjának Nézet gombjára, majd az SQL nézet parancsra.

  8. Az SQL-ablakban a SELECT záradék végén, közvetlenül az AS kulcsszó után cserélje le a MaxOfEventDate kifejezést a MostRecent értékre.

  9. Mentse a lekérdezést MostRecentEventByType néven.

Második lekérdezés létrehozása további adatok hozzáadásához

Ez az eljárás az előző eljárás MostRecentEventByType lekérdezését használja a kérdés megválaszolásához:

Ki volt az ügyfél az egyes eseménytípusok legutóbbi eseményén?

  1. Kattintson a Létrehozás lap Lekérdezések csoportjának Lekérdezéstervező gombjára.

  2. A Lekérdezések lapon kattintson duplán a MostRecentEventByType lekérdezésre.

  3. A Táblák lapon kattintson duplán az Események és a Vevők táblára.

  4. A lekérdezéstervezőben kattintson duplán a következő mezőkre:

    1. Az Események táblában kattintson duplán az EventType elemre.

    2. A MostRecentEventByType lekérdezésben kattintson duplán a MostRecent elemre.

    3. A Customers (Ügyfelek) táblában kattintson duplán a Company (Vállalat) elemre.

  5. A lekérdezéstervező rács EventType oszlopának Rendezés sorában válassza a Növekvő lehetőséget.

  6. A Tervezés lap Eredmények csoportjában kattintson a Futtatás gombra.

Vissza a lap tetejére

További segítségre van szüksége?

További lehetőségeket szeretne?

Fedezze fel az előfizetés előnyeit, böngésszen az oktatóanyagok között, ismerje meg, hogyan teheti biztonságossá eszközét, és így tovább.