我有以下代码,根据Resultat_ID
设置的内容,提供行的 profit 结果。
$result = mysql_query('SELECT Indsats, Odds, Resultat_ID, Kamp FROM spil');
$row = mysql_fetch_assoc($result);
echo " Gevinster: ";
$Indsats = $row['Indsats'];
$Odds = str_replace(",", ".", $row['Odds']);
$sum = 0;
while($row = mysql_fetch_array( $result ))
{
$Indsats = $row['Indsats'];
$Odds = str_replace(",", ".", $row['Odds']);
if ($row['Resultat_ID'] == 1) //Win
{
$sum += $Indsats * ($Odds-1);
}
elseif ($row['Resultat_ID'] == 2) //Loss
{
$sum += $Indsats * -1;
}
elseif ($row['Resultat_ID'] == 3) //HalfWin
{
$sum += $Indsats * ($Odds-1) * 0.5;
}
elseif ($row['Resultat_ID'] == 4) //HalfLoose
{
$sum += $Indsats * -0.5;
}
}
echo $sum;
我还有一个名为Tipper_ID
的列,其中包含每个自卸车的编号以及包含Tipper_ID
和Tipper_Name
的表格。
除了上面的总 profit 结果之外,我想得到每个自卸车的 profit 结果,所以基本上运行上面的部分为“all”和每个{{在Tipper表中1}}并获得每个部分的 profit 结果。
我该怎么做?
丹麦语/英语Translations:
Tipper_Name
答案 0 :(得分:0)
您有两个选择:
Tipper_Name
(或您需要的任何内容)分组,并使用刚刚创建的VIEW更改您的查询,添加INNER JOIN。即使这个解决方案稍微复杂一点,它也会更快!答案 1 :(得分:0)
这实际上看起来像是一个经典的SQL问题:
SELECT t.TIPPER_ID, t.TIPPER_NAME,
SUM(CASE(s.Resultat_ID WHEN 1 THEN Indsats*(Odds-1) ELSE 0 END)) AS Win,
SUM(CASE(s.Resultat_ID WHEN 2 THEN Indsats*(-1) ELSE 0 END)) AS Loss,
SUM(CASE(s.Resultat_ID WHEN 3 THEN Indsats*(Odds-1)*(0.5) ELSE 0 END)) AS HalfWin,
SUM(CASE(s.Resultat_ID WHEN 4 THEN Indsats*(-0.5) ELSE 0 END)) AS HalfLoss
FROM spil AS s
LEFT JOIN TIPPERS AS t ON t.TIPPER_ID=s.TIPPER_ID
GROUP BY s.TIPPER_ID
总的来说,你应该在php中添加它们。