首先,我想从数据库中提取相关月份的日期。为此,我使用了以下查询并生成了以下输出。
代码
SELECT DISTINCT date as tot FROM attendance WHERE date LIKE '%2016-06%'
输出
然后我需要从数据库中获取该日期的当前员工
。但是当我尝试这样做时,它只给我一个日期的总数。我该如何克服这个问题。这是我的代码。
SELECT DISTINCT date as days, COUNT(DISTINCT employee_id) as tot FROM attendance WHERE in_time != '' AND out_time != '' AND date LIKE '%2016-06%'
最佳答案
您需要使用分组依据
。当您省略 select
列表中未包含在 aggregate
函数中的字段时,mysql
仅返回任意值。然后你可以删除distinct
:
SELECT date as days, COUNT(DISTINCT employee_id) as tot
FROM attendance
WHERE in_time != '' AND out_time != '' AND date LIKE '%2016-06%'
GROUP BY date
<小时/>
根据评论,您的日期
字段的数据类型是什么?假设它是一个日期,您可以删除 like
并使用 year
和 month
:
AND Month(date) = 6 AND Year(date) = 2016
关于php - Mysql 多个查询来计算月份值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38780833/