>我有一个表,用户在其中输入目标日期,然后我想输出其关联目标日期大于当前日期的名称计数。 我试过了,但我得到了相同的结果
下面是代码
$select1_query = "
SELECT ACCOUNT_NAME
, COUNT(NCI_NUMBER)
, COUNT(CURDATE()>TARGET_DATE)
FROM sim_tracker
WHERE NCI_STATUS != 'Closed'
GROUP
BY ACCOUNT_NAME
";
不要使用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()
计算"true"值的数量。
COUNT()
不起作用,因为COUNT(<expression>)
计算非NULL
值的数量。 "真"和"假"都是非NULL
,所以它们都被计算在内。