php - Mysql 多个查询来计算月份值

标签 php mysql

首先,我想从数据库中提取相关月份的日期。为此,我使用了以下查询并生成了以下输出。

代码

SELECT DISTINCT date as tot FROM attendance WHERE date LIKE '%2016-06%'

输出

enter image description here

然后我需要从数据库中获取该日期的当前员工。但是当我尝试这样做时,它只给我一个日期的总数。我该如何克服这个问题。这是我的代码。

SELECT DISTINCT date as days, COUNT(DISTINCT employee_id) as tot FROM attendance WHERE in_time != '' AND out_time != '' AND date LIKE '%2016-06%'

enter image description here

最佳答案

您需要使用分组依据。当您省略 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 并使用 yearmonth:

AND Month(date) = 6 AND Year(date) = 2016 

关于php - Mysql 多个查询来计算月份值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38780833/

相关文章:

php - 在 PHP 中使用单例

php - 检查是否添加了新条目 - MySql

javascript - PHP 无法访问使用 jquery load() 加载的 php 页面中声明的变量

PHP MYSQL查询结果 "RANKING"

java - Liquibase交易界定

php - 使用 PHP 字符串将电子邮件替换为 Base64 编码的 ID

mysql - 用于本地数据库的 AngularJS API,从哪里开始?

MySQL 查询通过连接返回重复值

mysql - 如何返回 mysql 中的所有匹配项,其中值出现在位置 n 的字符串中?

php - 如何在 php 中使 SQLi 易受攻击的登录?