Я оценил время на работе, но когда я добавляю часы сотрудника (в данном случае 2), это дублирует предполагаемое время работы. - PullRequest
0 голосов
/ 02 июля 2019

У меня есть приблизительное время работы, но когда я добавляю часы сотрудника (в данном случае 2), это дублирует предполагаемое время. Мне нужно поделить на количество результатов (возможно, записей сотрудников), чтобы получить правильный ответ.

извлечение SQL из базы данных.

SELECT
     LaborDtl.JobNum,
     LaborDtl.ClockInDate,
     LaborDtl.OprSeq,
     EmpBasic.Name,
     (LaborDtl.LaborHrs) as [TotalHrs],
     ((JobOper.EstSetHours + JobOper.EstProdHours) / (COUNT (EmpBasic.Name))) as [TotEstHrs],
     LaborDtl.ResourceGrpID
FROM Erp.LaborDtl

left outer JOIN Erp.JobOper ON
   JobOper.JobNum = LaborDtl.JobNum
   AND JobOper.OprSeq = LaborDtl.OprSeq
JOIN Erp.EmpBasic ON
   EmpBasic.EmpID = LaborDtl.EmployeeNum
WHERE LaborDtl.Complete = '1'
   AND LaborDtl.ClockInDate = '2019-7-1'
   AND LaborDtl.ResourceGrpID = '5-XM-C'
   AND LaborDtl.JobNum = 'PA16742'

GROUP BY 
LaborDtl.JobNum,
LaborDtl.ClockInDate,
LaborDtl.OprSeq,
EmpBasic.Name,
LaborDtl.LaborHrs,
JobOper.EstSetHours,
JobOper.EstProdHours,
LaborDtl.EmployeeNum,
LaborDtl.ResourceGrpID

JobNum  ClockInDate OprSeq  Name        TotalHrs  TotEstHrs ResourceGrpID
pa16742 2019-07-01  20      Jerry Adam  1.6300    5.00      5-XM-C
PA16742 2019-07-01  20      Xue Lee     2.68000   5.00      5-XM-C

В этом случае TotEstHrs должно быть 2,5 в каждой строке.

1 Ответ

1 голос
/ 02 июля 2019

Я думаю, что это то, что вы хотите:

 ((JobOper.EstSetHours + JobOper.EstProdHours) / SUM(COUNT(EmpBasic.Name)) 
    OVER ()) as [TotEstHrs],

Он добавляет счетчик по всем строкам и затем выполняет деление.

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