尝试生成一个表,汇总查询中的总计等,但无法使其正常工作。
我有这个代码:
<?php
$assigned = $_POST['Sales_Exec'];
$date = $_POST['DateSelect'];
$Renewed = "SUM(CASE WHEN Outcome = 'Renewed' THEN 1 ELSE 0 END) AS 'Renewed <br/> Cases'";
$Lapsed = "SUM(CASE WHEN Outcome = 'Lapsed' THEN 1 ELSE 0 END) AS 'Lapsed <br/> Cases'";
$Open = "SUM(CASE WHEN Outcome = 'Open' THEN 1 ELSE 0 END) AS 'Outstanding <br/> Cases'";
$Total = "SELECT COUNT(Assigned) as 'Total <br/> Assigned";
echo GenerateTable("SELECT COUNT(Assigned) as 'Total <br/> Assigned, $Open, $Renewed, $Lapsed FROM Data WHERE Assigned = '$assigned' ");
?>
并且收到此错误:
MySQL 错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在 'Open' 附近使用的正确语法 THEN 1 ELSE 0 END) AS 'Outstanding Cases', SUM(CASE WHEN Outcome = ' 第 1 行
并且无法发现我哪里出错了。
除此之外,我还需要根据续订案例与分配案例总数进行续订“转换”百分比。我试过了
$Conversion = $Renewed/$Total;
但是并没有走到这一步,可能是因为上面的原始错误。我还需要将其四舍五入到最接近的百分比整数,即(95.67868786% 等于 96%)。
真的不知道如何让它工作,因此我们将不胜感激,提前谢谢您!
最佳答案
您错过了一个单引号(在 Total <br /> Assigned
之后):
GenerateTable("SELECT COUNT(Assigned) as 'Total <br/> Assigned', $Open, $Renewed, $Lapsed FROM Data WHERE Assigned = '$assigned' ");
至于百分比,您可能想在 PHP 中执行此操作,这将是本例中最简单的解决方案。因此,如果您的结果集中有一行,您可以执行以下操作:
$Conversion = $row['Renewed <br/> Cases] / $row['Total <br/> Assigned'];
关于php - php/mysql 查询的计数和求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12783273/