Egy összetett Adatbázis kezelős feladat megfejtésében tud segíteni valaki? (Exel, Access, C# közül valamelyikkel kellene megoldani)
Sziasztok
Lenne egy feladat, amit meg kellene oldani valamilyen módszerrel. Viszont van jó pár dolog benne, amit nem tudom hogyan lehetne leegyszerűsíteni, vagy máshogy nekiindulni, vagy egyáltalán hogy lehet megoldani.
A feladat az lenne:
Tegyük fel hogy egy tanár vagyok. Egy feladatot megoldatok mindig 3-3 tanulóval a táblánál és felírom a nevüket.
Miután leültek mindig azt fogom felszólítani akit a legrégebben hívtam ki.
Csakhogy időnként egy másik tanár tartja az órát, aki ezt nem követi és véletlenszerűen választja ki a 3 diákot. Vagyis az én adatlistámhoz hozzáír másik neveket mint akinek szerintem jönni kellett volna. Ezt tetszőlegesen sokszor megismételheti.
(Szóval bármikor manuálisan hozzá tudok adni, egy már meglévő listához még 3-at.)
Kellene valami olyan megoldás amivel mindig ki tudom listázni, hogy ki az a 3 tanuló, aki legrégebben felelt.
Mivel exel és word az amit valamelyest tudok használni, illetve használtam már access-t is(csak azzal nem voltunk annyira barátok infón :) ), így leginkább Exelben lenne szükségem valami megoldásra(ha már a Word nem adatok kezeléséről szól) Esetleg Access.
Valahogy úgy képzelem el a megoldást amit nem tudom hogyan valósítsak meg, hogy van egy oszlop amiben a diákok nevei van. De egyszerűség képen elnevezem őket 1-30 ig sorszámokkal. Szóval van egy név nevű oszlop amiben 1-30ig vannak számok egymás alatt. Valamint mellette egy oszlop amit indexnek nevezek.
Van 3 oszlop egymás mellett, amibe beírom, hogy melyik sorszámú diákok feleltek éppen(első, második, harmadik néven nevezem el az oszlopokat). Amikor valamelyik 3 diák felel, akkor annak a 3 tanulónak az indexe 0-ra változik.
Majd hozzáadok/hozzáírok egy új sort annak a 3 oszlopnak és megadom, hogy akkor melyik sorszámú diákok felelnek. És akkor azok indexe lesz 0. Akkor mikor valaki nem felel, vagyis nem változik 0-ra az indexe, akkor azok indexe mindig növekedjen eggyel.
Valamint lenne 3 cella/ablak ahol kiíratom az index oszlop 3 legnagyobb indexű sorhoz tartozó diákok sorszámát. Vagyis kiíratom, hogy kik feleltek legrégebben.
Ez a megoldás így fejben nagyon szépen nézne ki csak éppen fogalmam sincs, hogy hogyan lehet pl ha egy új sort írok, akkor automatikusan minden index megnőjön 1-gyel illetve az a 3 nullázódjon(exel egyáltalán tud ilyet érzékelni, hogy ha hozzáadódik egy sor, akkor erre úgy reagáljon, hogy változtasson egy egész oszlop(index oszlop) értékén), meg nem is tudok egy oszlop 3 legnagyobb elemű tagját kiíratni, csak 1-et (Főleg, hogy a 3 legnagyobbhoz tartozó név oszlop adatát kell kiíratni)
Milyen megoldással, hogyan lehet megcsinálni ezt a feladatot?
Igen, gondolom valamilyen adatbázis kezelő programot kellene írni, ahol lehet bővíteni egy meglévő adatbázist, és itt kellene mindenféle if-es dolgot használni. Valamicskét tanultunk visual studióban C# ot használni, de annyira nem megy hogy ezt meg tudjam oldani.
Amúgy néhány kezdeti sort meg kell adni, hogy legyen visszakapott érték akkor is mikor még nem adtam hozzá egyszer se 3 számot. És feltételezem, hogy mindig megadom mind a 3 sorszámot.
Igazából még az is megoldás lenne, hogy csak sorba teszi a diákok sorszámát, és nem listáz ki semmit, csak látom, hogy a lista tetején lévő sorszámú diákok feleltek leg régebben. Akkor biztosan nem okoz problémát, az, már ha egyáltalán kijöhet, hogy mondjuk 4-en is egyenlő régen nem feleltek, vagy csak simán talán az egyszerűbb megoldás érdekében.
Előre is nagyon köszönök minden választ, segítséget.
Gondolkodj adatbázisban! Miért?
Mert egy táblából, amiben szerepel a diák neve, és hogy mikor felelt (egy diák többször is szerpelhet) ezzel lekérdezhető, amit kérsz:
SELECT TOP 3 nev, MAX(DT) FROM #tabla GROUP BY nev
ORDER BY MAX(dt) ASC
Adatbázisban ez nagyon triviális, de Excelben is.
Nem indexeket kell tárolni, hanem a felelések dátumát.
Amúgy elég könnyen lehetne erre egy programot írni, kényelmes kezelőfelülettel.
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!