Új hozzászólás Aktív témák

  • nyunyu

    félisten

    válasz Sokimm #5200 üzenetére

    Nem teljesen értem, mire való a második táblád.

    Ha ebben csak a lehetséges táborozási opciók vannak felsorolva, és a harmadik táblába viszed fel a beérkezéskor, hogy melyik gyerek melyik opciókat kéri, akkor a harmadik táblába csak a gyerek nevét (vagy elsődleges azonosítóját/kulcsát), és az opció azonosítóját kell letárolnod.

    Ha a második táblában előre le vannak tárolva, hogy melyik gyerek mit kért (gyerekneve/azonosítója, opció párosként), akkor a harmadik tábla helyett kellene egy lekérdezés vagy nézet, ami ebből egy mátrixot rajzol.

    valahogy így:
    select nev, vega, reggeli, ebed, vacsora, szamtech, lovas, uszas
    from (
    select x.nev,
    max(x.vega) vega,
    max(x.reggeli) reggeli,
    max(x.ebed) ebed,
    max(x.vacsora) vacsora,
    max(x.szamtech) szamtech,
    max(x.lovas) lovas,
    max(x.uszas) uszas,
    from (
    select gy.nev,
    case when o.opcio = 'Vega' then 'I' else '' end vega,
    case when o.opcio = 'Reggeli' then 'I' else '' end reggeli,
    case when o.opcio = 'Ebéd' then 'I' else '' end ebed,
    case when o.opcio = 'Vacsora' then 'I' else '' end vacsora,
    case when o.opcio = 'Számítástechnika' then 'I' else '' end szamtech,
    case when o.opcio = 'Lovas' then 'I' else '' end lovas,
    case when o.opcio = 'Úszás' then 'I' else '' end uszas,
    from gyerekek gy
    join opciok o
    on o.gyerek_id = gy.id) x --vagy o.nev = gy.nev, ha nevet tárolsz
    group by x.nev);

    Ennek az eredménye egy ilyen táblázat lesz:
    NEV VEGA REGGELI EBED VACSORA SZAMTECH LOVAS USZAS
    Kiss Péter I I I I
    Nagy Anett I
    Török Flóra I I I

    (Bocs, nem nagyon vágom az Accesst, de elvileg szabvány SQL-ben is meg lehet feléje fogalmazni a kéréseket.)

Új hozzászólás Aktív témák