Hirdetés

Keresés

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

  • Novics

    senior tag

    válasz Novics #3075 üzenetére

    Jönnék egy újabb kérdéssel. :))

    Van egyszer a fentebb megoldott lekérdezés, ahol megkapjuk a legkorábbi kezdődátumot. De vannak olyan userek, akiknél nincsen ilyen dátum, hozzájuk egy másik táblázatban lévő kezdődátumot kellene beírni.
    Van tehát 2 tábla:
    szemad - itt található a jelenlegi kezdődátum
    kmh - itt vannak felsorolva a korábbi munkahelyek, innét kellett a legkorábbit kikeresni
    Nekem a jelentésre a kezdődátumhoz vagy a kmh-ban szereplő legkorábbi dátumot, vagy ha ilyen nincsen, akkor a szemad kezdődátumot kell kiíratnom. A két tábla a szemad.id = kmh.dolg mentén van összekapcsolva.

    Az IIF-re, és beágyazott lekérdezésekre gondoltam - de gondolva az előző megoldásra, lehet, hogy megint ágyúval megyek verébre -, amivel megvizsgálom, hogy a kmh-ban van-e érték, ha nincs, akkor a szemadból kérdezem le a jelenlegi kezdődátumot, ha van érték, akkor az ottani legkisebbet keresem meg.

    SELECT szemad.id, szemad.nev, IIF(ISEMPTY((SELECT kmh.kezdete FROM kmh INNER JOIN szemad ON kmh.dolg = szemad.id WHERE kmh.beszamithato =YES)),(SELECT szemad.jogvisz_kezd FROM szemad),(SELECT kmh.kezdete FROM kmh INNER JOIN szemad ON kmh.dolg = szemad.id WHERE kmh.beszamithato =YES))
    FROM szemad INNER JOIN kmh ON szemad.id = kmh.dolg
    GROUP BY szemad.nev, szemad.id;

    Azt kapom vissza, hogy ez az allekérdezés legfeljebb egy rekordot képes visszaadni. Nem tudom, hogy ezt pontosan hogyan is kell érteni, de arra magamtól is rájöttem, hogy ez így nem lehet jó. Az allekérdezések ugye nem egy-egy értéket adnak vissza, szóval valahogyan meg kellene mondani nekik, hogy a külső SELECT szemad.id-hoz igazodó értéket adják csak meg. Ha a szemad.nev/id-t átneveztem AS-zel, és az allekérdezésekben meg a WHERE záradékban beírtam, hogy kulso_nev = szemad.nev, akkor meg azért rinyált, hogy a kulsp_nev nem szerepel összesítő függvényben, akkor sem, ha mindegyik függvénybe beleírtam. Szóval totális a káosz, és már nincsen több ötletem.

    Közben azért guglizok, és felmerült, hogy esetleg valami olyan megoldás kellene, mint a programozásnál a szubrutinok. Lehet olyat, hogy megírja az ember a 3 lekérdezést, elnevezi őket, és utána csak rájuk hivatkozik? Gyanítom, hogy a külső FROM-ba bele kellene írni ezeket a lekérdezéseket is.

    Van valami jó oldal, ahol érthetően, de nem 28ezer oldalon keresztül bemutatják a lekérdezéseket?
    A Taylor-féle SQL for Dummies mennyire jó, mennyire szakmai?

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