Access-ban ezt hogyan kell?
Egy lekérdezés segítségével meg kell jeleníteni 3 mezőt, azokat meg megvan adva hogyan. Itt minden korrekten megy, de van két azonosító is, amik megjelennek. Van egy ID mező, amit hozzá tettem és beállítottam, hogy ez count legyen, a többi meg group by. Viszont hogy több groub by mező is van, így az elsőben lévő kétszer szereplő azonosító megmarad.
Valaki tudja mit csináljak, hogy jól tegye a dolgát?
Az SQL-be belenyúlni tilos, szóval azt hagyjuk is.
A feladat a következő: egy lekérdezést kell csinálni, ami megmutatja kik adtak le 60 pontnál kevesebbet érő tételeket 2005-ben. De minden email-cím csak egyszer szerepelhet. Mindent ment, kivétel pont az utóbbi.
A nagy gondom meg az, hogy nem tudom hogyan kellene elérnem azt, hogy ne mutassa kétszer azt az email-címet. Próbáltam úgy, hogy bekapcsoltam az összesítést, az ID-hez count-ot állítottam be, de mivel így 3 group by van, így nem érem el vele azt, amit szeretnék.
Ezt hogyan tudnám megoldani?
Három hiba van.
1. Először is, olyan nincs, hogy az SQL-be belenyúlni tilos, de én nem is kértem, hogy nyúlj bele, hanem hogy másold be ide. Nem értem, ki és miért akarná megtiltani, de még a hivatalos érettségi javítási útmutatóban is az SQL-t adják meg, és azt is nézik a javító tanárok. Bárkitől bármikor segítséget akarsz kérni, az SQL beszél, a többi ugat. Bármit kattintgatsz a rácson, SQL lesz belőle akkor is, ha nem nézed meg.
Ezenkívül pont az 5gyenge lekérdezés rácsát nem mutattad meg, pedig az lenne a lényeg. De azért megpróbálok segíteni.
2. A feladat értelmezésében van a hiba, ha pontosan írtad be a szöveget. Közelítsd meg nyelvtani alapon, elemezd a mondatot. Mit kérdezünk? KIK. Nem azt, hogy hányan, nem azt, hogy hányat, hanem hogy kik. Ezért sem a countnak, sem a group bynak nincs semmi köze a feladathoz. Ott követted el a hibát, hogy ezeket egyáltalán használni kezdted.
3. Ugyanennek az értelmezési hibának a következménye a túl sok oszlop. A kérdésre CSAK az emailcím mező a válasz, és csak annak az egy oszlopnak kéne látszania. Onnantól fogva, hogy a dátumot és a pontot belekeverted, fogalmilag nem lehet megcsinálni, amit akarsz, papíron se lehetne gép nélkül. Vedd ki a pipát, azok csak feltételek, de nem jelenhetnek meg. Onnantól fogva, hogy csak az emilcimet látod, már beállíthatsz rá egy distinctet (különböző értékek jelenjenek meg). Vagy akár group byt is, habár az fogalmilag nem olyan szerencsés, de az eredményt kiadja.
[link] !
Ez igaz, meg így tényleg egyszerűbb is a segítségadás.
Azt szándékosan hagytam így. Mert 2006-os nincsen és pontosan 2005.01.01-es sincs. Mert akkor már >= kellene. De akkor hogy korrektül járjak el, így csinálom: >=#2005. 01. 01.# And <=#2005. 12. 31.#
Most az összesítést kivettem és csak az email-címek láthatóak. Viszont itt nem tudom hogyan kellene megoldani, hogy ami ismétlődik az ne jelenlen meg. Mert a distinct-et nem adja ki automatikusan. Ez csakis SQL-es parancs? Vagy csak én szerencsétlenkedek ennyit ezzel?
Ezt elég trükkösen elrejtette a Microsoft. Rácsnézetben jobb klikk a mező nevére, tulajdonságok, egyedi értékek = igen.
Pont az a lényeg, hogy nem csak a pillanatnyilag létező értékekre kell jónak lennie a lekérdezésnek, hanem a feladatot kell megoldania bármilyen adatok esetén. Akkor is, ha az adatok később bővülnek.
Ez idáig is igenre volt állítva.
Viszont a függvény még mindig olyan neki, mint ha nem is létezne. De bezzeg még itt okozza pluszba a fejfájást, hogy amint az SQL-be beírtam, egyből képbe volt, mi a dolga.
Akkor rács nézetben, hogyan tudnám elérni, hogy besorolja mint létező függvény?
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!