Доступ к отчету / функция SQL DCount - PullRequest
1 голос
/ 19 августа 2011

В моей базе данных есть следующие таблицы и поля:

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 (или сколько угодно) сотрудниками и сделать сумму в этом поле.

Надеюсь, это достаточно ясно. Я и искренне ценю любую помощь!

David

1 Ответ

0 голосов
/ 20 августа 2011

Если я вас правильно понял, ваш пример (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 деталей.

Это то, что вы хотели?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...