访问报表/SQL DCount 函数
Posted
技术标签:
【中文标题】访问报表/SQL DCount 函数【英文标题】:Access Report / SQL DCount function 【发布时间】:2011-08-19 18:43:02 【问题描述】:我的数据库中有以下表格和字段:
tblProductionRecords:
pk_fldProductionRecordID,
fk_fldJobNumber_ID,
fldPartsCompleted,
tblJobs:
pk_fldJobID,
fldJobNumber
tblEmployee_ProductionRecord:
pk_fldEmp_ProdRec,
fk_fldProdRec_ID,
fk_fldEmployee_ID,
fldHours
tblEmployees:
pk_fldEmployeeID,
FldName
所以我要跟踪的是给定工作的生产记录。生产记录片断如下: 零件数量。 哪些员工参与了完成数量(可能是 1 名或多名员工,因此员工和生产记录之间存在多对多关系) 以及每位员工完成数量所花费的时间。
我面临的问题是在我的报告中跟踪我的工作总量。当给定的生产记录有一名员工处理这些数量时,将添加每个员工记录的数量。因此,让相同的 3 名员工从事一项工作,其中 3 人创建了完整的 1000 个零件。在我的报告中,它将显示总共完成了 3000 个。
我了解创建组、页脚、页眉、运行总和和计数功能(我相信)。
我怀疑我需要的是查询中的一个字段,它是 tblEmployee_ProductionRecord 中有多少记录的总和,其中详细部分中的 fldProdRec_ID =“当前生产记录”。有了这个数字,我可以将完成的总数量除以 3 名(或多少名)员工,然后对该字段求和。
我希望这已经足够清楚了。我真诚地感谢任何帮助!
大卫
【问题讨论】:
【参考方案1】:如果我理解正确,您的示例(3 名员工从事一项工作,每人创建 1000 个零件)在表格中将如下所示:
tblEmployee_ProductionRecord:
pk_fldEmp_ProdRec fk_fldProdRec_ID fk_fldEmployee_ID fldHours
1 1 1 5
2 2 2 5
3 3 3 5
tblProductionRecords:
pk_fldProductionRecordID fk_fldJobNumber_ID fldPartsCompleted
1 1 1000
2 1 1000
3 1 1000
如果是,请尝试以下查询:
SELECT
tblProductionRecords.fk_fldJobNumber_ID,
Count(tblEmployee_ProductionRecord.pk_fldEmp_ProdRec) AS EmployeeCount,
Sum(tblProductionRecords.fldPartsCompleted) AS CompletedSum
FROM
tblEmployee_ProductionRecord
INNER JOIN tblProductionRecords ON tblEmployee_ProductionRecord.fk_fldProdRec_ID
= tblProductionRecords.pk_fldProductionRecordID
GROUP BY
tblProductionRecords.fk_fldJobNumber_ID
HAVING
tblProductionRecords.fk_fldJobNumber_ID=1;
这将返回以下结果:
fk_fldJobNumber_ID EmployeeCount CompletedSum
1 3 3000
--> 对于第一个工作,三名员工共创建了 3000 个零件。
这是你想要的吗?
【讨论】:
你好克里斯蒂安-谢谢你的回复。并不是 3 名员工每人创造了 1000 个零件,而是 3 名员工在他们 3 人之间总共创造了 1000 个零件。所以 tblProductionRecords 中有一条 PartsCompleted 为 3000 的记录,而 tblEmployee_ProductionRecord 中有 3 条记录指向已完成的 3000 个零件的一条生产记录。 @user902949:我不确定我是否理解你的意思。如果 3 名员工总共创建了 1000 个零件(例如,300+300+400),那么 tblProductionRecords 中的记录将有 PartsCompleted = 3000?我原本预计会是 1000 个(员工创建的零件总数)。您能否澄清这一点(或者更好的是,编辑您的问题并为表格提供一些示例数据)?以上是关于访问报表/SQL DCount 函数的主要内容,如果未能解决你的问题,请参考以下文章