2015-06-14 4 views
1

У меня есть результаты так: All results И от результатов Ranking listРезультаты подсчета строк

запрос:

$results = $mysqli->query(" 
    SELECT tv.*, 
     (@rn := @rn + 1) as ranking 
FROM (SELECT liige_v.liige_id, liige_v.Eesnimi, 
      liige_v.Perekonnanimi, punktid, SUM(punktid) AS punktidkokku 
     FROM tulemus INNER JOIN 
      liige_v 
      ON tulemus.liige_id = liige_v.liige_id 
     GROUP BY tulemus.liige_id 
    ) tv CROSS JOIN 
    (SELECT @rn := 0) vars 
ORDER BY punktidkokku desc; 
"); 

стол:

print '<table class="mytable4">'; 
echo "<tr><th>Koht </th><th>Liikme nimi </th><th> count results</th><th>Punktid</th></tr>"; 
while($row = $results->fetch_array()) { 

print '<tr>'; 
print '<td>' .$row["ranking"].'</td>'; 
    print '<td>'.$row["Eesnimi"].' '.$row["Perekonnanimi"].'</td>'; 
    print '<td>'.$row["countresults"].'</td>'; 
    print '<td>'.$row["punktidkokku"].'</td>'; 

print '</tr>'; 

} 

print '</table>'; 

Как я получаю "подсчитывать результаты", как, сколько результаты дают сумму очков? В моем примере первого Айвар Narusson есть 288 баллов из 4 рас (кол resutls = 4)

+0

Пожалуйста, отредактируйте ваш вопрос с данными образца и желаемыми результатами. Я, например, не знаю, к чему относится ваш пример. Также может помочь SQL-скрипт. И не используйте внешние сайты для информации, относящейся к вопросу. Если сайты недоступны, вопрос не имеет смысла. Попытайтесь включить всю необходимую информацию в вопрос. –

ответ

2

Я думаю я понимаю вопрос. Если вы хотите подсчет, просто включите count(*) в агрегирование:

SELECT tv.*, 
     (@rn := @rn + 1) as ranking 
FROM (SELECT liige_v.liige_id, liige_v.Eesnimi, 
      liige_v.Perekonnanimi, punktid, 
      COUNT(*) as cnt, SUM(punktid) AS punktidkokku 
     FROM tulemus INNER JOIN 
      liige_v 
      ON tulemus.liige_id = liige_v.liige_id 
     GROUP BY tulemus.liige_id 
    ) tv CROSS JOIN 
    (SELECT @rn := 0) vars 
ORDER BY punktidkokku desc; 
Смежные вопросы