0
我正在为较大的生产系统开发一个简单的时间表模块,并且需要向用户显示一张信息表。我有以下表格可供使用:返回按列顺序输入的数据
TimeRecords
ID
WorkerID
AssyLineID
Station
Sequence
NbrHours
DateSubmitted
Workers
ID
Name
AssyLines
Name
数据输入期间,AssyLine会为每个工人输入时间。一个给定的工作人员可能会在一天中的两个或更多不同的工作站上工作。序列值是根据数据输入过程中输入的名称顺序分配的。
现在我想回到这个数据对所有组装生产线和所有工作人员按以下格式:
ResultSet
Worker.ID
Worker.Name
AssyLine.Name - group returned rows by assembly line, in alphabetical order
Sequence - within each assembly line, group by sequence
NbrHours - total hours for worker for this assembly line, all stations
TotalHours - total hours for this worker across all assembly lines and stations
其他注意事项: 1)行对于给定的工作人员要相对集中,开始与装配线记录的时间最长,按装配线的顺序排列。我计划将给定工作人员的所有条目合并到一行中以便向用户显示,如果将一个用户的所有行分组在一起,这将更加容易。如果不能这样做,我将不得不组和代码行的数据进行排序...
下面是该查询我想出迄今:
SELECT
w.ID
,w.Name
,a.Name
,tr.NbrHours
,tr.Seq
FROM
TimeRecords tr
INNER JOIN
Workers w ON
w.ID = tr.WorkerId
INNER JOIN
AssyLines a ON
a.AssyLineID = tr.AssyLineId
WHERE
tr.DateSubmitted < '2000-01-01'
ORDER BY
w.Name
,a.Name
,tr.Seq
,NbrHours DESC
显然,这留下了很多被期望。工作人员条目没有分组在一起,并且工作人员没有总数。
任何人都可以帮助我解决这个问题吗?我想我需要一个存储过程要做到这一点,而不是一个视图...
谢谢, 戴夫
这并不完全得到我在哪里,我需要 - 唯一它让我获得的是所有生产线上的总小时数,我对此表示感谢。但是,它不符合我添加的警告,然后重写,使其更有意义 - 此数据的目的是首先汇编行顺序的报告,每个工人只有一行包含所有工作小时。我还需要该行与他们记录时间最长的装配线一起出现。 – DaveN59
最后,我带着一些非常类似于此的东西,没有ORDER BY子句 - 就我所知,它对于视图没有任何作用。然后,我在Linq查询中进行了排序,创建一个集合并循环访问集合,将员工时间组合成一个包含小时和组装流水线列表的记录列表。我不能把这作为答案,因为似乎没有回答我问的问题......对不起。 – DaveN59