Mysql 如何使用PHP显示包含最小值、最大值和平均值(变量2)的SQL总和查询结果(变量1)?

Mysql 如何使用PHP显示包含最小值、最大值和平均值(变量2)的SQL总和查询结果(变量1)?,mysql,sum,max,average,min,Mysql,Sum,Max,Average,Min,我已经阅读了推荐答案,其中没有一个与我的主题相关 关于所进行手术的数据库包含许多表格和这些字段:表格dat_patient(patients,缩写为“p”)数字约为100,表格dat_optherapie(surgeries,缩写为“op”)约为1000个字段。以下是我用于查询的字段的说明: p.ID是与手术表中的op.patID相关的自动递增患者指数 op.OP1OPVerfahren包含外科手术,每个手术可以有29个字符串值(从“1”到“28”和“99”) op.OP1Datum包含手术日期

我已经阅读了推荐答案,其中没有一个与我的主题相关

关于所进行手术的数据库包含许多表格和这些字段:表格
dat_patient
(patients,缩写为“p”)数字约为100,表格
dat_optherapie
(surgeries,缩写为“op”)约为1000个字段。以下是我用于查询的字段的说明:

p.ID
是与手术表中的
op.patID
相关的自动递增患者指数

op.OP1OPVerfahren
包含外科手术,每个手术可以有29个字符串值(从“1”到“28”和“99”)

op.OP1Datum
包含手术日期

op.revision
显示给定数据集的修订数量(对于跟踪更改很重要)

现在我想在一张表格中列举所有不同的外科手术(29)。将SQL查询代码嵌入到我的PHP框架中效果很好:

基本SQL查询

    SELECT
        SUM(op.OP1OPVerfahren = "0") AS "Keine Operation durchgeführt",
        SUM(op.OP1OPVerfahren = "1") AS "Bioenterics Intragastric Ballon (BIB)",
        SUM(op.OP1OPVerfahren = "2") AS "Gastric Banding",
        SUM(op.OP1OPVerfahren = "3") AS "Roux-en-Y Gastric Bypass",
        SUM(op.OP1OPVerfahren = "4") AS "Roux-en-Y Gastric Bypass banded",
        SUM(op.OP1OPVerfahren = "5") AS "Scopinaro",
        SUM(op.OP1OPVerfahren = "6") AS "Duodenal Switch (DS)",
        SUM(op.OP1OPVerfahren = "7") AS "Sleeve Resection",
        SUM(op.OP1OPVerfahren = "8") AS "Gastric Pacemaker",
        SUM(op.OP1OPVerfahren = "9") AS "Billroth II",
        SUM(op.OP1OPVerfahren = "10") AS "Gastroplasty",
        SUM(op.OP1OPVerfahren = "11") AS "Fobi / Capella Bypass",
        SUM(op.OP1OPVerfahren = "12") AS "Larrad",
        SUM(op.OP1OPVerfahren = "13") AS "Santoro",
        SUM(op.OP1OPVerfahren = "14") AS "DJB",
        SUM(op.OP1OPVerfahren = "15") AS "TOGA",
        SUM(op.OP1OPVerfahren = "16") AS "Endobarrier",
        SUM(op.OP1OPVerfahren = "17") AS "Gastric Plication",
        SUM(op.OP1OPVerfahren = "18") AS "Stomaphyx",
        SUM(op.OP1OPVerfahren = "19") AS "Omega Loop Bypass",
        SUM(op.OP1OPVerfahren = "20") AS "Omega Loop Bypass banded",
        SUM(op.OP1OPVerfahren = "21") AS "Long Limb Bypass",
        SUM(op.OP1OPVerfahren = "22") AS "Distal Very Long Gastric Bypass (Thurnheer)",
        SUM(op.OP1OPVerfahren = "23") AS "Endoscopic Sclerosation",
        SUM(op.OP1OPVerfahren = "24") AS "Swedish Adjustable Gastric Bypass (SAGB)",
        SUM(op.OP1OPVerfahren = "25") AS "Vertical Banded Gastroplasty (VBG)",
        SUM(op.OP1OPVerfahren = "26") AS "Plastic Abdominal Wall Reconstruction (PAWR)",
        SUM(op.OP1OPVerfahren = "27") AS "Inner Hernia Repair",
        SUM(op.OP1OPVerfahren = "28") AS "Single Anastomosis Duodeno-Ileal Bypass with Sleeve Gastrectomy (SADI-S)",
        SUM(op.OP1OPVerfahren = "99") AS "Anderes OP-Verfahren",
        SUM(op.OP1OPVerfahren LIKE "%") AS "Summe"

        FROM dat_patient p
        LEFT OUTER JOIN dat_optherapie op ON op.patID = p.ID

        WHERE op.OP1Datum BETWEEN "2017-01-01" AND "2020-12-31"
        AND NOT EXISTS (SELECT 1 FROM dat_optherapie op2 WHERE op2.patID = p.ID AND op2.revision > op.revision);
    SELECT
        SUM(op.OP1OPVerfahren = "0") AS "Keine Operation durchgeführt",
        SUM(op.OP1OPVerfahren = "1") AS "Bioenterics Intragastric Ballon (BIB)",
        SUM(op.OP1OPVerfahren = "2") AS "Gastric Banding",

        [... abreviated because the same as in first SQL query ...]

        SUM(op.OP1OPVerfahren = "27") AS "Inner Hernia Repair",
        SUM(op.OP1OPVerfahren = "28") AS "Single Anastomosis Duodeno-Ileal Bypass with Sleeve Gastrectomy (SADI-S)",
        SUM(op.OP1OPVerfahren = "99") AS "Anderes OP-Verfahren",
        SUM(op.OP1OPVerfahren LIKE "%") AS "Summe",

        MIN(op.OP1Dauer),
        MAX(op.OP1Dauer),
        AVG(op.OP1Dauer)
                    
        FROM dat_optherapie op
        LEFT OUTER JOIN dat_patient p ON op.patID = p.ID
        WHERE op.OP1Datum BETWEEN "2017-01-01" AND "2020-12-31"

        AND NOT EXISTS (SELECT 1 FROM dat_optherapie op2 WHERE op2.patID = p.ID AND op2.revision > op.revision)

        GROUP BY op.OP1OPVerfahren
SQL编辑器中的结果如下所示(绿色箭头仅汇总找到的所有手术):

我的PHP代码中的结果如下所示:

我现在介绍每次手术的持续时间:

op.OP1Dauer
执行手术所需的分钟数

我想将SQL查询代码扩展为所有汇总手术的最小、最大和平均持续时间,作为三个附加列:

    [...]
    SUM(op.OP1OPVerfahren LIKE "%") AS "Summe",

    MIN(op.OP1Dauer) AS "MIN",
    MAX(op.OP1Dauer) AS "MAX",
    AVG(op.OP1Dauer) AS "AVG"

    FROM dat_patient p
    [...]
PHP应显示如下所示:

+-------------------------+---------+---------+---------+---------+
| Surgeries performed     | Sum     | MIN     | MAX     | AVG     |
+-------------------------+---------+---------+---------+---------+
| surgery x               | 9       | 25      | 348     | 125     |
+-------------------------+---------+---------+---------+---------+
| surgery y               | 107     | 87      | 244     | 167     |
+-------------------------+---------+---------+---------+---------+
| surgery z               | 97      | 5       | 57      | 23      |
+-------------------------+---------+---------+---------+---------+
| sum                     | 1019    | not really relevant here    |
+-------------------------+---------+---------+---------+---------+
当我在以下模式下更改SQL查询时

更改了SQL查询

    SELECT
        SUM(op.OP1OPVerfahren = "0") AS "Keine Operation durchgeführt",
        SUM(op.OP1OPVerfahren = "1") AS "Bioenterics Intragastric Ballon (BIB)",
        SUM(op.OP1OPVerfahren = "2") AS "Gastric Banding",
        SUM(op.OP1OPVerfahren = "3") AS "Roux-en-Y Gastric Bypass",
        SUM(op.OP1OPVerfahren = "4") AS "Roux-en-Y Gastric Bypass banded",
        SUM(op.OP1OPVerfahren = "5") AS "Scopinaro",
        SUM(op.OP1OPVerfahren = "6") AS "Duodenal Switch (DS)",
        SUM(op.OP1OPVerfahren = "7") AS "Sleeve Resection",
        SUM(op.OP1OPVerfahren = "8") AS "Gastric Pacemaker",
        SUM(op.OP1OPVerfahren = "9") AS "Billroth II",
        SUM(op.OP1OPVerfahren = "10") AS "Gastroplasty",
        SUM(op.OP1OPVerfahren = "11") AS "Fobi / Capella Bypass",
        SUM(op.OP1OPVerfahren = "12") AS "Larrad",
        SUM(op.OP1OPVerfahren = "13") AS "Santoro",
        SUM(op.OP1OPVerfahren = "14") AS "DJB",
        SUM(op.OP1OPVerfahren = "15") AS "TOGA",
        SUM(op.OP1OPVerfahren = "16") AS "Endobarrier",
        SUM(op.OP1OPVerfahren = "17") AS "Gastric Plication",
        SUM(op.OP1OPVerfahren = "18") AS "Stomaphyx",
        SUM(op.OP1OPVerfahren = "19") AS "Omega Loop Bypass",
        SUM(op.OP1OPVerfahren = "20") AS "Omega Loop Bypass banded",
        SUM(op.OP1OPVerfahren = "21") AS "Long Limb Bypass",
        SUM(op.OP1OPVerfahren = "22") AS "Distal Very Long Gastric Bypass (Thurnheer)",
        SUM(op.OP1OPVerfahren = "23") AS "Endoscopic Sclerosation",
        SUM(op.OP1OPVerfahren = "24") AS "Swedish Adjustable Gastric Bypass (SAGB)",
        SUM(op.OP1OPVerfahren = "25") AS "Vertical Banded Gastroplasty (VBG)",
        SUM(op.OP1OPVerfahren = "26") AS "Plastic Abdominal Wall Reconstruction (PAWR)",
        SUM(op.OP1OPVerfahren = "27") AS "Inner Hernia Repair",
        SUM(op.OP1OPVerfahren = "28") AS "Single Anastomosis Duodeno-Ileal Bypass with Sleeve Gastrectomy (SADI-S)",
        SUM(op.OP1OPVerfahren = "99") AS "Anderes OP-Verfahren",
        SUM(op.OP1OPVerfahren LIKE "%") AS "Summe"

        FROM dat_patient p
        LEFT OUTER JOIN dat_optherapie op ON op.patID = p.ID

        WHERE op.OP1Datum BETWEEN "2017-01-01" AND "2020-12-31"
        AND NOT EXISTS (SELECT 1 FROM dat_optherapie op2 WHERE op2.patID = p.ID AND op2.revision > op.revision);
    SELECT
        SUM(op.OP1OPVerfahren = "0") AS "Keine Operation durchgeführt",
        SUM(op.OP1OPVerfahren = "1") AS "Bioenterics Intragastric Ballon (BIB)",
        SUM(op.OP1OPVerfahren = "2") AS "Gastric Banding",

        [... abreviated because the same as in first SQL query ...]

        SUM(op.OP1OPVerfahren = "27") AS "Inner Hernia Repair",
        SUM(op.OP1OPVerfahren = "28") AS "Single Anastomosis Duodeno-Ileal Bypass with Sleeve Gastrectomy (SADI-S)",
        SUM(op.OP1OPVerfahren = "99") AS "Anderes OP-Verfahren",
        SUM(op.OP1OPVerfahren LIKE "%") AS "Summe",

        MIN(op.OP1Dauer),
        MAX(op.OP1Dauer),
        AVG(op.OP1Dauer)
                    
        FROM dat_optherapie op
        LEFT OUTER JOIN dat_patient p ON op.patID = p.ID
        WHERE op.OP1Datum BETWEEN "2017-01-01" AND "2020-12-31"

        AND NOT EXISTS (SELECT 1 FROM dat_optherapie op2 WHERE op2.patID = p.ID AND op2.revision > op.revision)

        GROUP BY op.OP1OPVerfahren
…,我在SQL编辑器中看到以下结果:

    SELECT
        SUM(op.OP1OPVerfahren = "0") AS "Keine Operation durchgeführt",
        SUM(op.OP1OPVerfahren = "1") AS "Bioenterics Intragastric Ballon (BIB)",
        SUM(op.OP1OPVerfahren = "2") AS "Gastric Banding",
        SUM(op.OP1OPVerfahren = "3") AS "Roux-en-Y Gastric Bypass",
        SUM(op.OP1OPVerfahren = "4") AS "Roux-en-Y Gastric Bypass banded",
        SUM(op.OP1OPVerfahren = "5") AS "Scopinaro",
        SUM(op.OP1OPVerfahren = "6") AS "Duodenal Switch (DS)",
        SUM(op.OP1OPVerfahren = "7") AS "Sleeve Resection",
        SUM(op.OP1OPVerfahren = "8") AS "Gastric Pacemaker",
        SUM(op.OP1OPVerfahren = "9") AS "Billroth II",
        SUM(op.OP1OPVerfahren = "10") AS "Gastroplasty",
        SUM(op.OP1OPVerfahren = "11") AS "Fobi / Capella Bypass",
        SUM(op.OP1OPVerfahren = "12") AS "Larrad",
        SUM(op.OP1OPVerfahren = "13") AS "Santoro",
        SUM(op.OP1OPVerfahren = "14") AS "DJB",
        SUM(op.OP1OPVerfahren = "15") AS "TOGA",
        SUM(op.OP1OPVerfahren = "16") AS "Endobarrier",
        SUM(op.OP1OPVerfahren = "17") AS "Gastric Plication",
        SUM(op.OP1OPVerfahren = "18") AS "Stomaphyx",
        SUM(op.OP1OPVerfahren = "19") AS "Omega Loop Bypass",
        SUM(op.OP1OPVerfahren = "20") AS "Omega Loop Bypass banded",
        SUM(op.OP1OPVerfahren = "21") AS "Long Limb Bypass",
        SUM(op.OP1OPVerfahren = "22") AS "Distal Very Long Gastric Bypass (Thurnheer)",
        SUM(op.OP1OPVerfahren = "23") AS "Endoscopic Sclerosation",
        SUM(op.OP1OPVerfahren = "24") AS "Swedish Adjustable Gastric Bypass (SAGB)",
        SUM(op.OP1OPVerfahren = "25") AS "Vertical Banded Gastroplasty (VBG)",
        SUM(op.OP1OPVerfahren = "26") AS "Plastic Abdominal Wall Reconstruction (PAWR)",
        SUM(op.OP1OPVerfahren = "27") AS "Inner Hernia Repair",
        SUM(op.OP1OPVerfahren = "28") AS "Single Anastomosis Duodeno-Ileal Bypass with Sleeve Gastrectomy (SADI-S)",
        SUM(op.OP1OPVerfahren = "99") AS "Anderes OP-Verfahren",
        SUM(op.OP1OPVerfahren LIKE "%") AS "Summe"

        FROM dat_patient p
        LEFT OUTER JOIN dat_optherapie op ON op.patID = p.ID

        WHERE op.OP1Datum BETWEEN "2017-01-01" AND "2020-12-31"
        AND NOT EXISTS (SELECT 1 FROM dat_optherapie op2 WHERE op2.patID = p.ID AND op2.revision > op.revision);
    SELECT
        SUM(op.OP1OPVerfahren = "0") AS "Keine Operation durchgeführt",
        SUM(op.OP1OPVerfahren = "1") AS "Bioenterics Intragastric Ballon (BIB)",
        SUM(op.OP1OPVerfahren = "2") AS "Gastric Banding",

        [... abreviated because the same as in first SQL query ...]

        SUM(op.OP1OPVerfahren = "27") AS "Inner Hernia Repair",
        SUM(op.OP1OPVerfahren = "28") AS "Single Anastomosis Duodeno-Ileal Bypass with Sleeve Gastrectomy (SADI-S)",
        SUM(op.OP1OPVerfahren = "99") AS "Anderes OP-Verfahren",
        SUM(op.OP1OPVerfahren LIKE "%") AS "Summe",

        MIN(op.OP1Dauer),
        MAX(op.OP1Dauer),
        AVG(op.OP1Dauer)
                    
        FROM dat_optherapie op
        LEFT OUTER JOIN dat_patient p ON op.patID = p.ID
        WHERE op.OP1Datum BETWEEN "2017-01-01" AND "2020-12-31"

        AND NOT EXISTS (SELECT 1 FROM dat_optherapie op2 WHERE op2.patID = p.ID AND op2.revision > op.revision)

        GROUP BY op.OP1OPVerfahren

基本上,这就是显示(受控)正确值的内容(请不要因为“-1”而责怪我,这些是我的实验数据,“-1”已留作测试之用…)。此外,我将由
dat\u optherapie
连接的主表
dat\u patient
更改为另一种方式(即使在查询中没有显示,我也需要与患者表的关联,因为内部区分哪些患者是真实的,哪些仅用于测试目的)

在PHP代码中,我以以下方式显示结果:

    <?php

    [... Preceding PHP code for exporting the results as CSV / XLSX ...]

    function getOP1OPVerfahrenStratification() {
        global $oDatabase;

        $qQuery = ' [... SQL query ...] ';

        $rQuery = mysql_query($qQuery, $oDatabase);
        $result = array("count" => mysql_num_rows($rQuery ), "result" => $rQuery);
        return $result;
    }

    function writeOP1OPVerfahrenStratification($rQuery) {
        if (!$rQuery) {
            $message = '<br>';
            $message .= '<b>Ungültige Abfrage:</b> ' . mysql_error() . '<br>';
            $message .= '<b>Gesamte Abfrage:</b> ' . $qQuery . '<br>';
            echo $message;
        }

        if (mysql_num_rows($rQuery) == 0) {
            $message = '<br>';
            $message .= '<p class="error">Zu diesem Zeitraum liegen noch keine Daten vor.</p> ' . mysql_error() . '<br>';
            echo $message;
        }

        while ($row = mysql_fetch_assoc($rQuery)) {
            echo '<tr>';
            echo '<td>';
            echo "Keine Operation durchgef&uuml;hrt";
            echo '</td>';
            echo '<td class="data_table_r">';
            echo $row['Keine Operation durchgeführt'];
            echo '</td>';

            //echo '<td>';
            //echo "MIN";
            //echo '</td>';
            echo '<td class="data_table_r">';
            echo $row['MIN'];
            echo '</td>';
            //echo '<td>';
            //echo "MAX";
            //echo '</td>';
            echo '<td class="data_table_r">';
            echo $row['MAX'];
            echo '</td>';
            //echo '<td>';
            //echo "AVG";
            //echo '</td>';
            echo '<td class="data_table_r">';
            echo $row['AVG'];
            echo '</td>';
            echo '</tr>';

            echo '</tr>';
            echo '<tr>';
            echo '<td>';
            echo "Bioenterics Intragastric Ballon (BIB)";
            echo '</td>';
            echo '<td class="data_table_r">';
            echo $row['Bioenterics Intragastric Ballon (BIB)'];
            echo '</td>';

            //echo '<td>';
            //echo "MIN";
            //echo '</td>';
            echo '<td class="data_table_r">';
            echo $row['MIN'];
            echo '</td>';
            //echo '<td>';
            //echo "MAX";
            //echo '</td>';
            echo '<td class="data_table_r">';
            echo $row['MAX'];
            echo '</td>';
            //echo '<td>';
            //echo "AVG";
            //echo '</td>';
            echo '<td class="data_table_r">';
            echo $row['AVG'];
            echo '</td>';
            echo '</tr>';

            echo '</tr>';

            [...]

            echo '<tr>';
            echo '<td>';
            echo "Single Anastomosis Duodeno-Ileal Bypass with Sleeve Gastrectomy (SADI-S)";
            echo '</td>';
            echo '<td class="data_table_r">';
            echo $row['Single Anastomosis Duodeno-Ileal Bypass with Sleeve Gastrectomy (SADI-S)'];
            echo '</td>';

            //echo '<td>';
            //echo "MIN";
            //echo '</td>';
            echo '<td class="data_table_r">';
            echo $row['MIN'];
            echo '</td>';
            //echo '<td>';
            //echo "MAX";
            //echo '</td>';
            echo '<td class="data_table_r">';
            echo $row['MAX'];
            echo '</td>';
            //echo '<td>';
            //echo "AVG";
            //echo '</td>';
            echo '<td class="data_table_r">';
            echo $row['AVG'];
            echo '</td>';
            echo '</tr>';

            echo '</tr>';
            echo '<tr>';
            echo '<td>';
            echo "Anderes OP-Verfahren";
            echo '</td>';
            echo '<td class="data_table_r">';
            echo $row['Anderes OP-Verfahren'];
            echo '</td>';

            //echo '<td>';
            //echo "MIN";
            //echo '</td>';
            echo '<td class="data_table_r">';
            echo $row['MIN'];
            echo '</td>';
            //echo '<td>';
            //echo "MAX";
            //echo '</td>';
            echo '<td class="data_table_r">';
            echo $row['MAX'];
            echo '</td>';
            //echo '<td>';
            //echo "AVG";
            //echo '</td>';
            echo '<td class="data_table_r">';
            echo $row['AVG'];
            echo '</td>';
            echo '</tr>';

            echo '</tr>';
            echo '<tr>';
            echo '<td style="font-size: 30px;">';
            echo "Summe";
            echo '</td>';
            echo '<td  class="data_table_r" style="font-size: 30px;">';
            echo $row['Summe'];
            echo '</td>';
            echo '</tr>';
        }
    }

    $beginn = microtime(true);
    $ListResult = getOP1OPVerfahrenStratification();
    $dauer = microtime(true) - $beginn;
    $ListCount = $ListResult['count'];
    ?>

    [... HTML, CSS, JavaScript files - begin ...]

    <?php
        writeOP1OPVerfahrenStratification($ListResult['result']);
        mysql_free_result($result);
    ?>

    [... HTML, CSS, JavaScript files - end ...]

[…HTML、CSS、JavaScript文件-开始…]
[…HTML、CSS、JavaScript文件-结束…]
你可能会发现所有这些都是以间接的方式建立起来的,我部分同意——然而,我的问题不是关于美化

沿着这条路,或者已经在我的SQL查询中,我对代码进行了漏洞处理,以便在PHP中正确显示。我发现我只显示了一个,并且始终是相同的单值三重最小值、最大值和平均值:

如果有人能告诉我我的错误在哪里,我将不胜感激。PHP表格显示在大量的
echo…
命令中进行,我想我应该以我目前还不了解的正确方式集成那里的MIN、MAX和AVG命令。

自己的解决方案:

当然,上面提到的一个又一个
SUM(…)
的聚合不起作用,因为这将在行中建立一个SQL查询结果集数组,该数组确实显示所执行手术类型(不是SUM!)的相关最小、最大和平均持续时间,但不需要进一步使用PHP进行ado就无法显示

生成的SQL查询代码如下所示:

    SELECT
    CASE
        WHEN op.OP1OPVerfahren = 0 THEN "keines"
        WHEN op.OP1OPVerfahren = 1 THEN "Bioenterics Intragastric Ballon (BIB)"
        WHEN op.OP1OPVerfahren = 2 THEN "Gastric Banding"
        WHEN op.OP1OPVerfahren = 3 THEN "Roux-en-Y Gastric Bypass"
        WHEN op.OP1OPVerfahren = 4 THEN "Roux-en-Y Gastric Bypass banded"
        WHEN op.OP1OPVerfahren = 5 THEN "Scopinaro"
        WHEN op.OP1OPVerfahren = 6 THEN "Duodenal Switch (DS)"
        WHEN op.OP1OPVerfahren = 7 THEN "Sleeve Resection"
        WHEN op.OP1OPVerfahren = 8 THEN "Gastric Pacemaker"
        WHEN op.OP1OPVerfahren = 9 THEN "Billroth II"
        WHEN op.OP1OPVerfahren = 10 THEN "Gastroplasty"
        WHEN op.OP1OPVerfahren = 11 THEN "Fobi / Capella Bypass"
        WHEN op.OP1OPVerfahren = 12 THEN "Larrad"
        WHEN op.OP1OPVerfahren = 13 THEN "Santoro"
        WHEN op.OP1OPVerfahren = 14 THEN "DJB"
        WHEN op.OP1OPVerfahren = 15 THEN "TOGA"
        WHEN op.OP1OPVerfahren = 16 THEN "Endobarrier"
        WHEN op.OP1OPVerfahren = 17 THEN "Gastric Plication"
        WHEN op.OP1OPVerfahren = 18 THEN "Stomaphyx"
        WHEN op.OP1OPVerfahren = 19 THEN "Omega Loop Bypass"
        WHEN op.OP1OPVerfahren = 20 THEN "Omega Loop Bypass banded"
        WHEN op.OP1OPVerfahren = 21 THEN "Long Limb Bypass"
        WHEN op.OP1OPVerfahren = 22 THEN "Distal Very Long Gastric Bypass (Thurnheer)"
        WHEN op.OP1OPVerfahren = 23 THEN "Endoscopic Sclerosation"
        WHEN op.OP1OPVerfahren = 24 THEN "Swedish Adjustable Gastric Bypass (SAGB)"
        WHEN op.OP1OPVerfahren = 25 THEN "Vertical Banded Gastroplasty (VBG)"
        WHEN op.OP1OPVerfahren = 26 THEN "Plastic Abdominal Wall Reconstruction (PAWR)"
        WHEN op.OP1OPVerfahren = 27 THEN "Inner Hernia Repair"
        WHEN op.OP1OPVerfahren = 28 THEN "Single Anastomosis Duodeno-Ileal Bypass with Sleeve Gastrectomy (SADI-S)"
        WHEN op.OP1OPVerfahren = 99 THEN "Anderes OP-Verfahren"
    END "OP-Verfahren",

    SUM(op.OP1OPVerfahren LIKE "%") AS "Summe der Eingriffe",

    MIN(op.OP1Dauer) AS "MIN",
    MAX(op.OP1Dauer) AS "MAX",
    ROUND(AVG(op.OP1Dauer),2) AS "AVG"
                    
    FROM dat_patient p
    LEFT OUTER JOIN dat_optherapie op ON op.patID = p.ID
    WHERE op.OP1Datum BETWEEN "1950-01-01" AND "2050-12-31"
    AND op.OP1Dauer != -1
    AND p.Testzwecke = 0
    AND NOT EXISTS (SELECT 1 FROM dat_optherapie op2 WHERE op2.patID = p.ID AND op2.revision > op.revision)

    GROUP BY op.OP1OPVerfahren
    ORDER BY op.OP1OPVerfahren
这将导致以下PHP表格显示:


最后三列为MIN、MAX和AVG,尚未命名(仍需在各自的样式表中进行修改)。此外,通过这种方式进行操作时,不会自动显示那些没有可计算的最小、最大和平均持续时间的操作过程,因为当执行了0次手术时,这些操作过程显然不能有任何持续时间。

警告:
mysql.*
扩展从PHP 5.5.0开始就被弃用,从PHP 7.0.0开始就被删除。相反,应该使用或扩展名。在选择MySQL API时,请参阅以获取更多帮助。我知道这一点,但这为我的问题提供了空解决方案。由于我无法影响的原因,我被迫使用的服务器只允许使用PHP5。在PHP7下,同样的问题也会出现。非常感谢你给我-2分,但我不在乎。看。请不要发文字图片和抱怨。我想你可能对这个网站有错误的期望。请访问。如果人们觉得这篇文章没有用,就会投反对票。我想你的问题还不够普遍。您可以尝试编辑它,使其更有趣。很难说哪一个问题足以引起社区的注意。不要亲自投票,记住这不是一个个人帮助论坛。我们谈论形式主义。对我的问题没有一个建议。也许你见过我是个医生。确切地说,是一位外科医生。如果你右下象限有疼痛,表明可能是阑尾炎,那么你会不会因为我不小心让我做你的主治医生而被拒绝,因为你开错了门,或者在我想到给你做手术之前讨论了财务问题?不,你不会的。你会期待我的帮助,我有权这样做。这也是我在这里所期望的。补充:由于这是本机SQL查询代码,它可以用于我最初提到的PHP5以及任何PHP7代码。现在唯一的区别是,该表的生成意味着在最初提到的
while…
语句中使用
foreach($field=>row)