このコードはトリックを行う必要があります:
select
a.advisor,
a.cases,
round((a.cases/b.totalCases)*100,2) as PercentCases
from
(
Select
tblcontacts.ContactFullName As Advisor,
Count(tblcases.CaseID) As Cases
From
tblcases Inner Join
tblcontacts On tblcontacts.ContactID =
tblcases.ContactAssignedTo
Group By
tblcontacts.ContactFullName with rollup
) a,
(
Select
Count(tblcases.CaseID) As Cases
From
tblcases Inner Join
tblcontacts On tblcontacts.ContactID =
tblcases.ContactAssignedTo
) b
tblCasesテーブルに、最初のクエリで返されるもの以外のレコードがない場合は、次のようにbステートメントを実行できます。
(
Select
Count(tblcases.CaseID) As Cases
From
tblcases
) b
提供したコードに基づくPHPバージョンは次のようになります。
<?php
mysql_select_db($database_ghl_portal, $ghl_portal);
$query_Recordset1 = "
SELECT
tblcontacts.ContactFullName,
Count(tblcases.CaseID) As Cases
FROM
tblcases
Inner Join
tblcontacts
On tblcontacts.ContactID = tblcases.ContactAssignedTo
GROUP BY
tblcontacts.ContactFullName with rollup";
$totalValue=0;
$i=0;
$Recordset1 = mysql_query($query_Recordset1, $ghl_portal) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
while ($row_Recordset1 = mysql_fetch_assoc($Recordset1))
{
$totalValue+=$row_Recordset1["Cases"];
// Do all your other stuff to put the result into an array here such as
$yourArray[$i][0]=$row_Recordset1["Advisor"];
$yourArray[$i][1]=$row_Recordset1["Cases"];
$i++;
}
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
// And your output code would look like:
for ($j=0; $j<$totalRows_Recordset1; $j++)
{
echo "Advisor: ".$yourArray[$j][0]."<br>";
echo "Count: ".$yourArray[$j][1]."<br>";
echo "Percentage: ".(round(($yourArray[$j][1]/$totalValue),2)*100)."<br><br>";
}
?>
そうは言っても、クエリにはphpPDOオブジェクトを使用する必要があります。
支援に関しては、私がここで調べて有用な回答を得たもののほんの一部をこのコミュニティに還元できるのは素晴らしいことです。