对不起,我是新来的 . 只是想学习 . 我试图使用case和count函数有条件地计算SQL中特定条件发生的次数 . 这计算存储在eeg表中的男性/女性的数量 . 这是我的SQL查询 .
SELECT COUNT(CASE WHEN `Gender` = 'Male' THEN 1 END),
COUNT(CASE WHEN `Gender` = 'Female' THEN 1 END)
FROM `eeg`
当我在mysql后端(phpmyadmin)上运行查询时,这会输出数据,但是在我的php文件中,我得到了这两行的“未定义索引”错误 . 所有其他行都完全没问题 . 我不知道如何将这些特定的数据集输出到变量 .
这是php文件中的SQL查询(完整):
$result = mysql_query("SELECT MONTH(ScanDate), YEAR(ScanDate),
COUNT(Investigation),
COUNT(CASE WHEN `Gender` = 'Male' THEN 1 END),
COUNT(CASE WHEN `Gender` = 'Female' THEN 1 END),
SUM(InvestigationAmount), SUM(AmountDue)
FROM eeg
WHERE Investigation = '{$investigation}'
AND ScanDate BETWEEN '{$ScanDate1}'
AND '{$ScanDate2}'");
这是while循环(完整):
while($row=mysql_fetch_array($result)){
$month_doe=$row['MONTH(ScanDate)'];
$year_doe=$row['YEAR(ScanDate)'];
$si=$row['COUNT(Investigation)'];
$male=$row["COUNT(CASE WHEN 'Gender' = 'Male' THEN 1 END)"];
$female=$row["COUNT(CASE WHEN 'Gender' = 'Female' THEN 1 END)"];
$sum_investigation=number_format($si);
$sia=$row['SUM(InvestigationAmount)'];
$sum_investigationamount=number_format($sia);
$srd=$row['SUM(AmountDue)'];
$sum_rebatedue=number_format($srd);
}
谢谢您的帮助 . 一直把我的头发拉出来,但是喜欢学习和提高 . 是的,mysql_query是折旧的:D
截图如下:
代码截图
1 回答
使用表达式的别名并使用别名来访问php中表达式的结果:
我会将这种方法用于表达式的每个字段(上述查询中的其他sum()字段) .