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ü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)
。