Autor Zpráva
24k
Profil *
Na generovani statistiky hracu ( velice komplexni ), k videni zde -> http://www.pesonline.info/statistika/historicka-tabulka/

pouzivam narocnejsi ale velice rychly SQL (viz nize) a nyni mam razeni podle BODU.
Rad bych to udelal podle PRUMERU bodu na zapas ( PRUMER_PTS) ale ktery by fungoval tak ze to bude radit az kdyz hrac odehraje minimalne 50 zapasu, jinak by byl prvni hrac ktery odehral i jen 1 zapas tj prumer 3.0. DIKY




$sql="SELECT SQL_CALC_FOUND_ROWS h.prezdivka, hrac,
SUM(V)+SUM(R)+SUM(P) as PZ,
SUM(V) as V, SUM(R) as R, SUM(P) as P,
SUM(g1) as GF, SUM(g2) as GA,
SUM(g1) - SUM(g2) as ROZDIL,
SUM(V)*3 + SUM(R)*1 as PTS,
( SUM(g1) / (SUM(V)+SUM(R)+SUM(P)) ) as PRUMER_BRANEK_GF,
( SUM(g2) / (SUM(V)+SUM(R)+SUM(P)) ) as PRUMER_BRANEK_GA,
( (SUM(V)*3 + SUM(R)*1) / (SUM(V)+SUM(R)+SUM(P)) ) as PRUMER_PTS





FROM

(

SELECT d_hrac as hrac,
SUM(IF(d_goly>h_goly,1,0)) as V,
SUM(IF(d_goly=h_goly,1,0)) as R,
SUM(IF(d_goly<h_goly,1,0)) as P,
SUM(d_goly) as g1,
SUM(h_goly) as g2
FROM vysledky
WHERE schvaleno=2
GROUP BY hrac

UNION ALL

SELECT h_hrac as hrac,
SUM(IF(d_goly<h_goly,1,0)) as V,
SUM(IF(d_goly=h_goly,1,0)) as R,
SUM(IF(d_goly>h_goly,1,0)) as P,
SUM(h_goly) as g1,
SUM(d_goly) as g2
FROM vysledky
WHERE schvaleno=2
GROUP BY hrac

UNION ALL

SELECT d_hrac as hrac,
SUM(IF(d_goly>h_goly,1,0)) as V,
SUM(IF(d_goly=h_goly,1,0)) as R,
SUM(IF(d_goly<h_goly,1,0)) as P,
SUM(d_goly) as g1,
SUM(h_goly) as g2
FROM vysledky_ladder
GROUP BY hrac

UNION ALL

SELECT h_hrac as hrac,
SUM(IF(d_goly<h_goly,1,0)) as V,
SUM(IF(d_goly=h_goly,1,0)) as R,
SUM(IF(d_goly>h_goly,1,0)) as P,
SUM(h_goly) as g1,
SUM(d_goly) as g2
FROM vysledky_ladder
GROUP BY hrac
)
as tmp
JOIN hraci h ON h.id = tmp.hrac
GROUP BY hrac
ORDER BY PTS DESC, ROZDIL DESC, GF DESC, prezdivka ASC
LIMIT $a, $b
";
24k
Profil *
IF( SUM(V)+SUM(R)+SUM(P) < 50 , 2, 1) as SERAD,



.
.
.

ORDER BY SERAD ASC


Kdyby vedel nekdo jiny zpusob tak dikes
24k
Profil *
Tak jsem se spetl potrebuju neco jako

ORDER BY if (pocet_zapasu>50, PRUMER DESC, pocet_zapasu ASC) as SERAD , ... dalsi kriteria


haze to parse, jde to?
Kajman_
Profil *
ORDER BY if (pocet_zapasu>50, -PRUMER, pocet_zapasu)
24k
Profil *
Dik, k tomu jsem jiz taky dosel. Zkousel jsem to u snadnejsich selectu ( tj. bez UNIONU) a v pohode.
Jenze tady u toho mi to hlasi ze sloupec neexistuje. Cim to? Sloupce jako PZ, V, R, P se tvori pocitanim ze vsech unionu a hlasi se jako UnKnown, kdyz jsem zkousel sloupec hrac, prezdivka tak to slapalo.

Co s tim?
Toto téma je uzamčeno. Odpověď nelze zaslat.

0