访问报告/ SQL DCount功能

时间:2011-08-19 18:43:03

标签: database ms-access

我的数据库中有以下表格和字段:

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个。

我理解创建组,页脚,标题,运行总和和Count函数(我相信)。

我怀疑我需要的是我的查询中的一个字段,它是tblEmployee_ProductionRecord中有多少记录的总和,其中fldProdRec_ID =“详细部分中的当前生产记录”。有了这个数字,我可以将3个(或多个)员工之间的总完成数量除以并计算该字段的总和。

我希望这很清楚。我并且真诚地欢迎任何帮助!

大卫

1 个答案:

答案 0 :(得分:0)

如果我理解正确的话,你的例子(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

- &GT;对于第一职位,三名员工共创建了3000个部分。

这是你想要的吗?