我正在生成一个换班报告:
在我的申请中,我提供了一个用于选择班次和行的下拉列表,他们将从日历中选择日期
我有3班
我有一个名为datalogging
的表,其中将存储登录信息,如下所示:
Name Shiftname ID operatorname Date plantname line Machine
Pradeepa Shift2(11-7) 3 Operator 3 2011-05-28 Plant 3 Line5 mc10
Ashwini Shift1(7-3) 1 Operator 1 2011-05-29 Plant 3 Line6 mc12
Deepika Shift2(11-7) 2 Operator 3 2011-05-29 Plant 5 Line9 mc18
Ashwini Shift1(7-3) 1 Operator 1 2011-05-24 Plant 1 Line1 mc1
Deepika Shift2(3-11) 2 Operator 2 2011-05-24 Plant 2 Line3 mc5
Ashwini Shift2(3-11) 1 Operator 2 2011-05-25 Plant 2 Line3 mc5
依旧......
我有一个参数表,如温度,压力,pH值,速度,二氧化碳等
Temperature
表包含以下数据,此表将包含从早上7点到凌晨3点的所有读数
Temperature Time Date
27 13:13:54.000 2011-05-25
27.3 13:14:04.000 2011-05-25
27.6 13:14:14.000 2011-05-25
27.9 13:14:24.000 2011-05-25
28.2 13:14:34.000 2011-05-25
28.5 13:14:44.000 2011-05-25
27 16:13:29.000 2011-05-26
27 16:13:31.000 2011-05-26
依旧......
用户将从下拉列表中选择一行并切换,他将从日历中选择日期 如果用户选择shift2,line3和date 25/05/2011,我的报告中应显示下午3点到11点之间的读数是什么
我的报告应如下所示:
Machine Shiftname Date Time Temperature
mc5 Shift2 25/05/2011 13:13:54.000 27
mc5 Shift2 25/05/2011 13:14:04.000 27.3
mc5 Shift2 25/05/2011 13:14:14.000 27.6
我也在做行天报告
其中shiftname应根据时间更改,例如,如果时间更改为23:00:00 shiftname应在我的报告中更改为shift3
如果用户选择特定的班次和日期,例如,如果用户选择shift1,line1和date,我的报告应包含所有读数,从上午7点到下午3点
任何人都可以帮助我。
答案 0 :(得分:2)
您可以通过以下查询获取报告
SELECT d.Machine
, CASE WHEN t.time BETWEEN '19:00:00.000' AND '23:59:59.999' THEN 'Shift1'
WHEN t.time BETWEEN '00:00:00.000' AND '02:59:59.999' THEN 'Shift1'
WHEN t.time BETWEEN '03:00:00.000' AND '10:59:59.999' THEN 'Shift2'
WHEN t.time BETWEEN '11:00:00.000' AND '18:59:59.999' THEN 'Shift3'
END
, t.Date
, t.Time
, t.Temperature
FROM Datalogging d
INNER JOIN Temperature t ON t.Date = d.Date
WHERE d.Shifname = 'Shift2(3-11)'
AND d.Line = 'Line3'
AND t.Date = '25/05/2011'
但如果我们可以假设每台机器每天都有温度读数,很明显您的Temperature
和Datalogging
表之间缺少关系。