我有一个表,用户在其中输入目标日期,然后我想输出名称的计数,其中与它们关联的目标日期大于当前日期。 我尝试过,但是得到的结果相同
下面是代码
$select1_query = "
SELECT ACCOUNT_NAME
, COUNT(NCI_NUMBER)
, COUNT(CURDATE()>TARGET_DATE)
FROM sim_tracker
WHERE NCI_STATUS != 'Closed'
GROUP
BY ACCOUNT_NAME
";
答案 0 :(得分:0)
请勿使用count()
。使用sum()
:
SELECT ACCOUNT_NAME,
COUNT(NCI_NUMBER),
SUM(CURDATE() > TARGET_DATE)
FROM sim_tracker
WHERE NCI_STATUS <> 'Closed'
GROUP BY ACCOUNT_NAME;
之所以有用,是因为在数值上下文中,MySQL将布尔表达式视为“ 1”表示真,“ 0”表示假。 SUM()
然后计算“真实”值的数量。
COUNT()
不起作用,因为COUNT(<expression>)
计算非NULL
值的数量。 “ true”和“ false”都是非NULL
,因此它们都被计数。