首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据年/月/日获取记录列表的MySQL查询

问根据年/月/日获取记录列表的MySQL查询
EN

Stack Overflow用户
提问于 2013-06-20 19:13:09
回答 3查看 552关注 0票数 0

我正在尝试编写一个查询,以从我的数据库中获取在表中的特定日期发生的记录的计数。我的查询如下所示:

代码语言:javascript
复制
SELECT
  count(id),
  A.status,
  YEAR(A.dateRequested),
  MONTHNAME(A.dateRequested),
  WEEK(A.dateRequested),
  DAYNAME(A.dateRequested)
FROM ASSESSMENT A where A.status = 'Pending';

它给我的只是一条记录:

代码语言:javascript
复制
50  Pending 2013    April   16  Monday

为什么它没有给我列出的所有记录。例如,我在周一插入了50条记录,在周二插入了20条记录,以此类推。我怎么才能得到这样的名单呢?为什么函数WEEK(A.dateRequested)返回16,因为一个月有4周?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-06-20 19:16:07

您正在使用没有group by的count(id)。MySQL的工作方式是将其转换为空的group by。您将获得整个表的count(id),其他字段将被设置为一个随机行。

要按工作日列出待处理记录的数量,请执行以下操作:

代码语言:javascript
复制
SELECT  DAYNAME(A.dateRequested)
,       count(id),
FROM    ASSESSMENT A 
where   A.status = 'Pending'
group by
        DAYNAME(A.dateRequested)
票数 2
EN

Stack Overflow用户

发布于 2013-06-20 19:17:01

  1. 第16周是一年中的第几周,而不是每月的第几周。
  2. 您的查询没有查询今天发生的项目。它正在查找具有挂起状态的项目。将其更改为类似以下内容:

WHERE A.dateRequested = '2013-06-20'

  • You使用COUNT函数,该函数将只返回一个结果,除非您按某项进行分组。
票数 0
EN

Stack Overflow用户

发布于 2013-06-20 19:17:51

试试这个:-

代码语言:javascript
复制
SELECT
  count(id),
  A.status,
  YEAR(A.dateRequested),
  MONTHNAME(A.dateRequested),
  WEEK(A.dateRequested),
  DAYNAME(A.dateRequested)
FROM ASSESSMENT A where A.status = 'Pending'
GROUP BY A.status,
  YEAR(A.dateRequested),
  MONTHNAME(A.dateRequested),
  WEEK(A.dateRequested),
  DAYNAME(A.dateRequested)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17212147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档