Mysql Sum(如果列名称为1,则为1,否则为0)始终返回一行。我怎么能让它不退货呢

Mysql Sum(如果列名称为1,则为1,否则为0)始终返回一行。我怎么能让它不退货呢,mysql,sql,Mysql,Sql,我通过在查询中使用“count(*)作为数据大小”并检查其是否为“0”来解决此问题。尝试删除ELSE部分。我无法复制报告的行为,因为您没有分组依据。@fancyPants是,但是我假设你会有几个fname/lname/itms\u assets.assets\u名称,所以你应该按它们分组。@Pholochtairze我没有正确阅读这个问题。对不起,你说得对。 SELECT SUM(CASE WHEN alert_header = 'Overspeeding' THEN 1 ELSE 0

我通过在查询中使用“count(*)作为数据大小”并检查其是否为“0”来解决此问题。

尝试删除
ELSE
部分。我无法复制报告的行为,因为您没有分组依据。@fancyPants是,但是我假设你会有几个fname/lname/itms\u assets.assets\u名称,所以你应该按它们分组。@Pholochtairze我没有正确阅读这个问题。对不起,你说得对。
SELECT
    SUM(CASE WHEN alert_header = 'Overspeeding' THEN 1 ELSE 0 END) AS overspeeding,
    SUM(CASE WHEN alert_header = 'Tyre Pressure' THEN 1 ELSE 0 END) AS tyre_pressure,
    itms_assets.assets_name,
    fname,
    lname
FROM itms_alert_master
LEFT JOIN itms_assets
    ON (itms_assets.asset_id = itms_alert_master.asset_id)
LEFT JOIN itms_personnel_master
    ON (itms_personnel_master.personnel_id = itms_alert_master.driver_id)
WHERE
    itms_alert_master.del_date IS NULL
    AND itms_alert_master.company_id = '" . $company_id . "'