这是我的情景。基本上我有一个 JobItem 表,它与父 Job 表相关联。这些 JobItem 记录包含 JobID 以将它们与父记录相关联, FunctionCode 指定工作功能,以及 FunctionCost < / strong>指定与该功能的1个单位成本相关的成本。
我有一个 TimesheetItem 表,其中包含有关员工所做工作的信息。因此,如果他们说他们做了50个单位的 FunctionCode ,那么这需要绑定到 JobItem ,其中 TimesheetItem em>匹配 JobItem 表中的 JobID , TimesheetItem 上的 FunctionCode 与 FunctionCode匹配 JobItem 上的。
这样我就可以通过将员工完成的单位乘以每单位成本(在 JobItem 表单上)来准确计算工作成本。
所以我在 JobItem 和 TimesheetItem 之间使用INNER JOIN。这样可以吗?对于这种情况,这是正确的设计吗?
希望这不会令人困惑。帮助将不胜感激!
谢谢!
答案 0 :(得分:1)
SELECT TimesheetItem.EmployeeID,
SUM(JobItem.FunctionCost * TimesheetItem.UnitCompleted) AS TotalCostPerEmployee
FROM (Job
INNER JOIN JobItem ON Job.ID = JobItem.JobID)
INNER JOIN TimesheetItem ON (JobItem.JobID = TimesheetItem.JobID)
AND (JobItem.FunctionCode = TimesheetItem.FunctionCode)
GROUP BY TimesheetItem.EmployeeID
以上查询是如何获得每位员工的工作总价值的示例。您必须将TimesheetItem.UnitCompleted
和TimesheetItem.EmployeeID
替换为实际字段名称。
如果您希望将总数按FunctionCode
分组,则以下内容应该有效:
SELECT TimesheetItem.FunctionCode,
SUM(JobItem.FunctionCost * TimesheetItem.UnitCompleted) AS TotalCostPerFunctionCode
FROM (Job
INNER JOIN JobItem ON Job.ID = JobItem.JobID)
INNER JOIN TimesheetItem ON (JobItem.JobID = TimesheetItem.JobID)
AND (JobItem.FunctionCode = TimesheetItem.FunctionCode)
GROUP BY TimesheetItem.FunctionCode