我是一家小型制造公司的首席技术官,显然做了一些非常实际的事情,并且感谢那里的专家为经验不足的人提供时间。
我正在尝试为 SQL Server 构建一个查询,以汇总制造过程中每台机器的时间。
我得到的结果看起来像:
InvoiceID Min DateIn MachineName MachineID
17993 12 2012-09-28 Beam Saw 1
17993 26 2012-09-28 Beam Saw 1
17993 17 2012-10-02 Edge Banding 3
17993 21 2012-10-02 Skipper 4
17993 23 2012-10-03 Shipping 5
等下一张发票。
我的代码:
SELECT i.InvoiceID
,SUM(DATEPART(Minute,(wf.DateTimeOut - wf.DateTimeIn))) AS [Min]
,CAST(wf.DateTimeIn AS DATE) AS [DateIn]
,m.MachineName
,wf.MachineID
FROM Workflow wf
JOIN
InvoicesPerJobPeriod ipjp
ON
ipjp.Workflowid = wf.ID
JOIN Machines m
ON
m.MachineID = wf.MachineID
JOIN
Invoices i
ON ipjp.InvoiceID = i.InvoiceID
WHERE (i.InActive = '0')
GROUP BY i.InvoiceID, m.MachineName, wf.MachineID, wf.DateTimeIn
ORDER BY i.InvoiceID, wf.MachineID
我不明白为什么分组显示了 Beam Saw 的多个记录。理想情况下,每台机器、每张发票应该有一个记录。Datetimein 通常是同一天,但我需要显示它,以防制造步骤跨越数天。在那种情况下,我会合理地为一台机器拥有多个记录。
非常感谢你的帮助。非常感谢。
悬崖