我在显示所有按名称分组的名称时遇到问题,例如:
这是我的表:
IMEPRIIMEK REZULTAT EKIPA
------------------------------
Ela 256 e13e01
Joe 218 e13e01
Tim 198 e13e01
Dan 265 e13e02
Jim 256 e13e02
Kim 215 e13e02
使用我的代码,我得到了这个结果:
# EKIPA TOTAL IMEPRIIMEK
-------------------------------
Dan
1 e13e02 736 Jim
Kim
------------------------
Ela
2 e13e01 672 Joe
Tim
这是我的代码:
<?php
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("paradox", $con);
$result2 = mysql_query("SELECT NazivEkipe, ImePriimek, Rezultat,
SUM(Rezultat) AS 'total'
FROM tekmovanje
WHERE NazivEkipe='e13e01' OR NazivEkipe='e13e02' OR NazivEkipe='e13e03' OR NazivEkipe='e13e04' OR NazivEkipe='e13e05'
GROUP BY NazivEkipe
ORDER BY total DESC") or die(mysql_error());
$rank = 0;
while($row = mysql_fetch_array ($result2))
{
$rank++;
?>
<tr align="center" valign="middle">
<td rowspan="3" align="center" valign="middle"><?php echo $rank; ?></td>
<td rowspan="3" align="center" valign="middle" style="font-weight: bold; color: #008AFF;"><?php echo $row['total']; ?></td>
<td rowspan="3" align="center" valign="middle"><?php echo $row['NazivEkipe']; ?></td>
<tr align="center" valign="middle">
<td align="center" valign="middle" ><?php echo $row['ImePriimek']; ?></td>
</tr>
<?php
}
?>
</table>
帮助我,谢谢你的答案。
PS:这是供个人使用而且不会上线,因此我不关心SQL注入或使用PDO MySQLi进行此操作
答案 0 :(得分:1)
您缺少表格标记<table>
试试这个
SELECT Ekipa , ImePriimek, Rezultat,
SUM(Rezultat) AS total
FROM tekmovanje
WHERE Ekipa in ('e13e01','e13e02','e13e03','e13e04','e13e05')
GROUP BY Ekipa
ORDER BY total DESC
或者如果您要按ImePriimek
分组以显示所有用户
SELECT Ekipa , ImePriimek, Rezultat,
SUM(Rezultat) AS total
FROM tekmovanje
WHERE Ekipa in ('e13e01','e13e02','e13e03','e13e04','e13e05')
GROUP BY Ekipa ,ImePriimek
ORDER BY total DESC
编辑。我认为这是你想要的
试试这个
SELECT Ekipa , group_concat(ImePriimek) as IMEPRIIMEK, Rezultat,
sum(Rezultat) AS total
FROM tekmovanje
WHERE Ekipa in ('e13e01','e13e02','e13e03','e13e04','e13e05')
GROUP BY Ekipa
ORDER BY total DESC
RESULT
_______________________________________
| EKIPA IMEPRIIMEK REZULTAT TOTAL |
| ______________________________________|
| e13e02 Dan,Jim,Kim 265 726 |
| e13e01 Ela,Joe,Tim 256 672 |
|_______________________________________|
答案 1 :(得分:0)
为什么不只是这个查询?
SELECT EKIPA, sum(REZULTAT), GROUP_CONCAT(DISTINCT IMEPRIIMEK)
FROM yourtable
GROUP BY EKIPA
答案 2 :(得分:0)
我想你希望得到每个EKIPA
的totalResult。
SELECT a.*, b.totalResult
FROM tableName a
INNER JOIN
(
SELECT EKIPA, SUM(REZULTAT) totalResult
FROM tableName
GROUP BY EKIPA
) b ON a.EKIPA = b.EKIPA
结果
╔════════════╦══════════╦════════╦═════════════╗
║ IMEPRIIMEK ║ REZULTAT ║ EKIPA ║ TOTALRESULT ║
╠════════════╬══════════╬════════╬═════════════╣
║ Ela ║ 256 ║ e13e01 ║ 672 ║
║ Joe ║ 218 ║ e13e01 ║ 672 ║
║ Tim ║ 198 ║ e13e01 ║ 672 ║
║ Dan ║ 265 ║ e13e02 ║ 736 ║
║ Jim ║ 256 ║ e13e02 ║ 736 ║
║ Kim ║ 215 ║ e13e02 ║ 736 ║
╚════════════╩══════════╩════════╩═════════════╝