我很难计算在表计划中找到新 personnel_id 的次数,但如果第二次找到相同的personnel_id则会忽略。
例如 personnel_id 24 下周在A楼和B楼,但只计为1,因为这是同一个人。
最后我会做$result = $totalpersonnel_id_tablepersonnel - $totalpersonnel_id_tableplanning
这样的事情,它会给我一个像7这样的数字,这意味着7名员工没有受到影响。
我认为这是我想要的正确查询:
$test=mysql_query("SELECT COUNT(DISTINCT personnel_id) AS numberpid
FROM planning WHERE personnel_id!='' GROUP BY personnel_id HAVING
COUNT(personnel_id) > 1");
我没有找到如何从此查询中获得总和。
答案 0 :(得分:1)
如果personnel_id!=''表示NOT NULL,则使用personnel_id IS NOT NULL而不是使用numberpid> 1编辑下面后查询
SELECT COUNT(DISTINCT personnel_id) AS numberpid
FROM planning WHERE personnel_id IS NOT NULL
GROUP BY personnel_id
HAVING numberpid > 1
答案 1 :(得分:0)
您需要使用子查询来对personnel_id进行过滤,分组和计数,并过滤parrent查询中的计数。
SELECT personnel_id, numberpid
FROM (
SELECT count(personnel_id) as numberpid, personnel_id
FROM palnning
WHERE personnel_id!=''
GROUP BY personnel_id) as tmp_table
WHERE numberpid > 1
答案 2 :(得分:0)
找到解决方案:
$result=mysql_query("SELECT COUNT(*) AS numberpid FROM planning WHERE personnel_id!='' GROUP BY personnel_id");
$howmany=mysql_num_rows($result);
感谢您的帮助!