CJ největší affiliate síť v ČR, 40+ inzerentů CPC,CPL,CPO model. Začni vydělávat teď
Zobrazují se odpovědi 1 až 7 z 7

Vybrat prvních 33 záznamů s typem 0 a prvních 6 s typem 1*

  1. Kód:
    select v.*,SUM(v.body) as celkb,h.jmeno,h.prijmeni,h.id as hid,h.klub,z.id_hrace,z.id_zebricku
     from
    turnaje_hraci v join hraci h
    ON h.id = v.hrac
     LEFT JOIN
    zebricky_prirazeni z
     ON z.id_hrace = h.id
     WHERE (z.id_zebricku = $zebricek $juniori)
     group by h.id
     ORDER by
    (select SUM(body) as celk from turnaje_hraci where hrac = h.id)
    desc
    
    
    $zebricek = 1;
    $juniori = "";

    Tohle mi vypise tabulku hráčů + jejich body .. jenze.. nektere turnaje jsou tzv. "Double" a nektere "Single".. ja potrebuju, aby ten dotaz bral POUZE 33 nejlepších (nejvíc bodů ve sloupci body) single a 6 double.. protože v této lize se prostě víc turnajů nepočítá.. Tzn.. když někdo bude mít 50 single odehraných turnajů a 10 double odehraných, tak chci, aby tabulka počítala pouze 33 single nejlepších a 6 nejlepších double.. sečetla body a podle toho seřadila data..

    single poznáš tak, že v tabulce "turnaje_hraci" ve sloupci "typ" = 0
    double to samé, akorát "typ" = 1

    Nedari se mi to vubec dat dokupy, uz se v tom zamotavam..

  2. posli strukturu db, samotnej dotaz mi tak narychlo nepomuze ti pomoci :) ale pravdepodobne to budou resit subdotazy... jen je bez struktury nedokazu sepsat :)

  3. Citace Původně odeslal Aleš Jiříček Zobrazit příspěvek
    posli strukturu db, samotnej dotaz mi tak narychlo nepomuze ti pomoci :) ale pravdepodobne to budou resit subdotazy... jen je bez struktury nedokazu sepsat :)
    posílám, díky

    turnaje_hraci
    id
    turnaj
    typ (0 nebo 1 (single nebo double))
    id_hrac
    body
    umisteni
    zebricek

    hraci
    id
    jmeno,prijmeni atp. (neni v tomto pripade potreba)

    zebricky_prirazeni
    id_zebricku
    id_hrace

  4. porad tu strukturu uplne nechapu, normalne je mi to jasne :D ale mohl bys dodat komentar k te strukture a vice to popsat? nejlip treba i ten dotaz cos uz poslal proc si delal zrovna to co jsi delal? ja byhc tu db uprimne navrhnul troch jinak, ale treba to chapu jen spatne :)

  5. Citace Původně odeslal Aleš Jiříček Zobrazit příspěvek
    posli strukturu db, samotnej dotaz mi tak narychlo nepomuze ti pomoci :) ale pravdepodobne to budou resit subdotazy... jen je bez struktury nedokazu sepsat :)
    turnaje
    id
    nazev


    turnaje_hraci - uchovává informace o tom, jak dopadl který hráč na jakém turnaji

    id
    turnaj - ID turnaje (spárování s tabulkou turnaje)
    typ (0 nebo 1 (single nebo double))
    id_hrac - ID hráče (spárování s tabulkou hráči)
    body - body, které získal hráč na daném turnaji
    umisteni - kolikátý se hráč umístil na daném turnaji

    hraci
    id
    jmeno,prijmeni atp. (neni v tomto pripade potreba)

    zebricky_prirazeni
    id_zebricku (žebříčky jsou 3 = muži, ženy, junioři.. ID slouží pro spárování)
    id_hrace (spárování s hráčem (hráč může být ve 2 žebříčcích zároveň, proto je to řešené takto))


    Víc by toho nemělo být potřeba.. Potřebuji do toho mého dotazu vlastně dostat subdotaz s LIMITem a WHERE podmínkou (WHERE typ = 0 order by body desc LIMIT 33 + WHERE typ = 1 order by body desc limit 6) sečíst body těchto dvou subdotazů a podle nich to seřadit

  6. K výsledku pak dojoinovat potřebné údaje.
    Počítá se pro každý žebříček zvlášť, optimálně dodat ke každému žebříčku počet započítaných utkání v jednotlivých (obou) typech

    set @hrc=-1;
    set @typ=-1;
    set @por=0;
    select xx.*
    from
    (
    select x.*,
    @por:= case when @hrc=x.id_hrac and @typ=x.typ then @por+1 else 1 end as poradi,
    @hrc:= x.id_hrac,@typ:= x.typ
    from (select * from turnaje_hraci where rebricek=xxxx order by id_hrace,typ,body desc)x
    )xx where (typ=0 and poradi<34) or (typ=1 and poradi<7)

    ---------- Příspěvek doplněn 18.08.2011 v 11:09 ----------

    Uvedená struktura nedovolí, aby hráč figuroval ve více žebříčcích, stačilo by však vyřadit žebříček z turnaje_hraci a použít žebříček z vazby na zebricky_prirazeni

  7. ne že bych tu strukturu studoval ale ze zadání si to říká o dva dotazy spojené přes UNION

Podobná témata

  1. Váš první webdesign
    By MichalVurm in forum Design
    Odpovědí: 34
    Poslední příspěvek: 10.03.2010, 17:19
  2. První eshop
    By Favourit in forum E-shopy
    Odpovědí: 3
    Poslední příspěvek: 16.08.2009, 19:04
  3. Pomoc s typem dat
    By kenod in forum PHP
    Odpovědí: 1
    Poslední příspěvek: 17.02.2009, 09:31
Hostujeme u Server powered by TELE3