Hirdetés

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

  • rum-cajsz
    őstag

    Kérdés, adott egy adatbázis, amit szétdobtam az egyik mező adatai alapján évek szerint külön táblákba (tehát minden év összes bejegyzése külön táblában van már).

    Amikor az egész egyben volt, akkor az alábbi lekérdezés hibátlanul működött (a jatekosl mező tartalma ugyanaz mint a jatekos mezőé, de kisbetűsítve):

    SELECT jatekos, sum(pont) FROM jateklista WHERE pont >='1' GROUP BY jatekosl ORDER BY 2 LIMIT 50

    Az évek szerint szétdobott táblák esetén a következő lekérdezést alkalmaztam, hogy a fenti eredményt elérjem (csak 2 évet írok le, mivel a teljes időszak lekérdezését PHPban állítom elő dinamikusan, a hiba úgyis ugyanaz):

    (SELECT jatekos, sum(pont) FROM jateklista2005 WHERE pont >= '1' GROUP BY jatekosl) UNION (SELECT jatekos, sum(pont) FROM jateklista2006 WHERE pont >= '1' GROUP BY jatekosl) ORDER BY 2 DESC LIMIT 50

    A hiba pedig az, hogy minden játékos annyiszor szerepel, ahány évben beleesik a fenti lekérdezésbe. Nyilván valami alap dolgot rontok el, de remélem tudtok segíteni:) Esetleg ha valakinek van "szebb" megoldása, megköszönöm. :R

    Csak annyi hiányzik, hogy a lekérdezésed most évenként jön fel, szóval kívülre kell még egy group by.
    Vagy csinálsz egy nézetet a szétbontott táblákra, és akkor elég egy group by a nézetre.

    pl:

    SELECT jatekos, sum(pont) FROM
    (
    SELECT jatekos, pont FROM jateklista2005 WHERE pont >= '1'
    UNION
    SELECT jatekos, pont FROM jateklista2006 WHERE pont >= '1'
    )
    GROUP BY jatekos
    ORDER BY 2 DESC LIMIT 50

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