从多个记录中获取员工总数

时间:2014-04-22 19:16:26

标签: sql ms-access-2013

我有一张时间卡文件,列出每位员工的每日工作时间。我已经弄清楚,使用查询,如何获得总小时数,但我还需要员工总数。我在这里和其他地方搜索并尝试过几乎所有东西都没有用。我相信这很简单,但我似乎无法获得员工总数。任何帮助将不胜感激。 主文件名为时间卡,我使用字段员工编号链接到文件调用员工以获取员工姓名。时间卡中还有其他字段,即"工作号","工作描述"和#34;小时类型"(例如常规和加班)我想要总结报告,但我没有意识到员工可以在这些领域有两个条目。所以这就是为什么我在使用这些领域时无法让全体员工正确行事。 我终于能够使用仅在时间卡文件中出现一次的字段来创建查询并使用总员工打印报告。因此,除非有人知道如何计算总行数,否则我将坚持使用我的报告。

3 个答案:

答案 0 :(得分:0)

我同意弗拉基米尔的观点,它有助于发布您期望看到的内容以及您正在使用的桌子类型。但是,我一直处于同样的境地。也许这是SQL的一个很好的起点

SELECT COUNT(*) AS TotalNumberEmployees FROM TheTableShowingEmployees;

答案 1 :(得分:0)

发布问题:

  1. 问题陈述
  2. 预期结果清单
  3. 尝试了示例代码
  4. 涉及的表结构(包括相关字段,数据类型和tableNames)
  5. 会给你更好的结果。展示你的作品,我们会告诉你我们的作品!

    鉴于迄今为止有限的信息,这是我能提出的最好的信息

    • 我使用了一个左联盟,因为有些员工还没有报告时间,你想要所有员工。
    • 我使用coalesce将null小时更改为0.
    • 我假设Employees表存在并且它连接到Employee_no上的时间卡。
    • 我假设firstName和LastName在 EmployeeTable中

    SELECT coalesce(Sum(T.hours),0) AS SumOfhours, E.FirstName, E.LastName
    FROM Employees E
    LEFT JOIN Timecards T
      on T.Employee_no = E.Employee_no
    GROUP BY E.FirstName, E.Last_name
    

    另请注意,您可以编辑您的问题,不要对其发表评论;它让人难以理解..最后但并非最不重要......欢迎来到SO!

答案 2 :(得分:0)

经过大量的搜索和测试后,我终于找到了2009年的一篇文章来解决我的问题。

`如果要计算组,可能需要在其中添加运行总和文本框 组头。例如,如果您的报告包含订单和订单 细节,但你想要计算唯一订单的数量,你不能使用一个 报告页脚中的文本框,其控件来源如下: =计数(订单ID) 此表达式将计算订单和详细信息。 您可以在Order标题中添加一个文本框: 名称:txtOrderCount 控制来源:= 1 运行总和:全部 可见:没有 然后在“报表页脚”部分中添加一个文本框:

控制来源:= txtOrderCount

Duane Hookom Microsoft Access MVP`

感谢您的帮助。