我这儿没问题 2023-11-28 14:40 采纳率: 0%
浏览 3
已结题

sql查询当日未填报工时的人员的人数以及姓名

我有两个表,一个是用户表user,一个填报工时的detail表,以此来查出当日未填报工时的人员的人数以及姓名(已经填报过的就查不出来了),但是我下面的sql语句为什么老是查出来user表中的姓名和数量;这是为什么?有谁能把帮忙写一下sql语句?

img

img

<select id="getUsersReport" resultType="com.bjpowernode.st.workbench.domain.UnfilledUserReport">
    SELECT u.name AS userName, COUNT(d.id) AS value
    FROM tbl_user u
    LEFT JOIN tbl_detail d ON d.id = u.id AND DATE(d.create_time) = CURRENT_DATE
    WHERE d.id IS NULL OR (DATE(d.create_time) = CURRENT_DATE AND d.id IS NULL)
    GROUP BY u.name
  </select>

  • 写回答

3条回答 默认 最新

  • 专家-郭老师 Java领域新星创作者 2023-11-28 16:24
    关注

    你的 SQL 查询似乎有一些问题,导致无法正确地获取当日未填报工时的人员的人数和姓名。以下是一个纠正后的查询:

    SELECT u.name AS userName, COUNT(d.id) AS value
    FROM tbl_user u
    LEFT JOIN tbl_detail d ON u.id = d.user_id AND DATE(d.create_time) = CURRENT_DATE
    WHERE d.id IS NULL
    GROUP BY u.name;
    

    在这个查询中,我假设 tbl_user 表中存储用户信息,其中包含 idname 字段。而 tbl_detail 表中存储工时信息,其中包含 id(用户 ID)、user_id(关联用户表的 ID 字段)和 create_time(创建时间)字段。

    这个查询使用了 LEFT JOIN,将用户表和工时表连接在一起,然后使用 WHERE 子句来过滤出当日未填报工时的用户。最后,使用 GROUP BY 来按照用户姓名进行分组,并使用 COUNT 函数来计算每个用户的工时填报数量。

    请根据你的实际表结构进行适当的调整。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月28日
  • 创建了问题 11月28日

悬赏问题

  • ¥15 phython如何实现以下功能?查找同一用户名的消费金额合并—
  • ¥15 孟德尔随机化怎样画共定位分析图
  • ¥18 模拟电路问题解答有偿速度
  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
  • ¥15 误删注册表文件致win10无法开启
  • ¥15 请问在阿里云服务器中怎么利用数据库制作网站
  • ¥60 ESP32怎么烧录自启动程序
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)
  • ¥15 52810 尾椎c三个a 写蓝牙地址