【发布时间】:2021-11-19 22:35:01
【问题描述】:
我正在使用 Microsoft Access 和一个简单的数据库,该数据库汇总了可计费客户的员工小时数。我创建了一个查询来计算每位员工的计费小时总数。我还需要它以零和返回工人。我无法弄清楚如何在同一个查询中正确执行此操作。
我是一名会计师,大概六年没有写过 SQL,也从来没有特别精通过。我认为对于更有经验的人来说,这应该是一个相当容易的解决方法。我的 SQL 代码正是我在设计视图中构建查询时由 Access 生成的。代码是:
SELECT [EYH Export].Worker, Sum([EYH Export].Hours) AS [Billed Hours]
FROM [EYH Export] INNER JOIN [Job List] ON [EYH Export].Client = [Job List].Client
WHERE ((([Job List].Billed)="Billed"))
GROUP BY [EYH Export].Worker;
它返回一个工人列表,第一列显示他们的姓名,第二列显示计费小时总数。为了包含没有计费时间的名称,我相信我应该使用类似:COUNT ([EYH Export].Worker WHERE ([EYH Export].Client) IS NULL;
我真的非常感谢任何建议。仅仅为我指明正确的方向将是一个巨大的祝福。
谢谢。
【问题讨论】:
-
数据库中两行的样本会有所帮助。 1 个带有“非零和”的工人,一个带有。
-
可能只需将您的内连接更改为 LEFT JOIN,但我们需要您的表结构、数据示例和所需结果。
-
EYH Export中的每个 客户端在Job List中是否有对应的行? -
@Brad - 当然不会“只是”是
LEFT JOIN,OP 的查询使用右侧表仅过滤到计费客户;在不排除没有匹配计费记录的情况下进行过滤需要一些额外的步骤。 -
EYH Export 中的每个客户在 Job List 中都有对应的行。