mysql - 在 select 语句中计算 where 和 if

标签 mysql

您好,我正在尝试在 mysql 中编写堆积条形图,首先我需要正确查询,并需要一些帮助。

目前我有:

SELECT
COUNT(TargetDate) AS Planned,
COUNT(StartDate) AS Completed,
MONTHNAME(TargetDate) AS `Month`,
StartDate,
AssessmentStatus
FROM AuditCycleAssessments
WHERE (Year(TargetDate) = Year(now()))
GROUP BY MONTHNAME(TargetDate)
ORDER BY Month(TargetDate)

效果很好,看起来像 screenshot

但是我需要更改第 3 行以包含它自己的 where 语句,例如...

  (COUNT(StartDate) if AssessmentStatus=3) AS Completed,

第 1 点,有人可以帮我实现这个目标吗。

谢谢

最佳答案

使用 CASE 语句执行条件 COUNT

SELECT
    COUNT(TargetDate) AS Planned,
    COUNT(CASE WHEN AssessmentStatus=3 THEN StartDate END) AS Completed,
    MONTHNAME(TargetDate) AS `Month`,
    StartDate,
    AssessmentStatus
FROM AuditCycleAssessments
WHERE (Year(TargetDate) = Year(now()))
GROUP BY MONTHNAME(TargetDate)
ORDER BY Month(TargetDate)

关于mysql - 在 select 语句中计算 where 和 if,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44027619/

相关文章:

MySQL select 语句删除 WHERE 子句中的空格

php - 使用 Yii 和 PHP 在 Spinx 搜索中按字段排序

php - 如何让 Mysql 查询(多连接)更快更高效

php - SQL Laravel GroupBy 并显示所有记录

php - 单击登录表单中的提交会重定向到index.php并且不会登录

mysql - 使用 MySQL 更新带组的字段

mysql - 如何选择仅存在于数据条目范围之间的值?

php - 在插入/更新每一行时导出 MySQL 表以将其标记为 "exported"或等效项

php - MySQL 数据库查询不返回任何内容

mysql - QSqlTableModel 空结果