我正在收集有关表中进入或退出办公室的数据。 现在,我需要对这些数据进行报告,但是此日期和时间记录存在问题。
df1 = df.loc[df.index.repeat(6)].copy()
add = df1.groupby(level=0).cumcount()
mask = df1['diff'] < 0
df1['length'] = np.where(mask, df1['length'] - add, df1['length'] + add)
df1 = df1.reset_index(drop=True)
print (df1)
code tank length dia diff
0 123 3 625 210 -0.38
1 123 3 624 210 -0.38
2 123 3 623 210 -0.38
3 123 3 622 210 -0.38
4 123 3 621 210 -0.38
5 123 3 620 210 -0.38
6 123 5 635 210 1.20
7 123 5 636 210 1.20
8 123 5 637 210 1.20
9 123 5 638 210 1.20
10 123 5 639 210 1.20
11 123 5 640 210 1.20
我想要这个用户(AAA)的ETIME。
xhr.upload.onprogress = function(e) {
//console.log('s.xhr.upload > onprogress > e.target.slot', e.target.slot);
if (e.lengthComputable) {
var percent = Math.floor((e.loaded/e.total)*100);
console.log('progres > > '+percent+'%');
e.target.slot.status = 'uploading';
e.target.slot.progress = percent;
_slotProgressTrigger(e.target.slot, e.target.group);
}
};
这是我的SQL。
EDATE ENAME ETIME EINOUT ESABUN
20190502 AAA 083615 IN 6112
20190507 AAA 083255 IN 6112
20190507 AAA 085022 IN 6112
答案 0 :(得分:0)
您可以为此使用setAttribute("action", "/newValue")
这个想法是将除ETIME以外的所有字段上的所有行进行分组
然后您可以获取每行的最高时间值
分组将确保您没有重复的行
group by
答案 1 :(得分:0)
按您要唯一的列分组,并在时间列上使用max()以获得每个组的最高分。
SELECT EDATE, ENAME, max(ETIME) as maxTime
FROM RDCA.dbo.HISTORY
WHERE ESABUN = '6112'
AND EDATE LIKE '201905%'
AND EINOUT = 'IN'
GROUP BY EDATE, ENAME
由于您的WHERE子句,我从SELECT子句中删除了已经具有给定值的列。
答案 2 :(得分:0)
这是您的查询。在进行排序之前,您需要将时间转换为有效的datetime字段。
select * from (
select [EDATE],
[ENAME],
[ETIME],
[EINOUT],
row_number() over (partition by
ESABUN order by cast(concat(left(ETIME, 2), ':', substring(ETIME, 3, 2), ':', right(ETIME, 2)) as datetime) DESC) as rn
FROM [RDCA].[dbo].[HISTORY]
WHERE ESABUN = '6112' AND [EDATE] LIKE '201905%' AND [EINOUT] = 'IN') t1
where t1.rn = 1
答案 3 :(得分:0)
您可以在下面的代码中尝试使用以下代码,其中我使用CAST作为EDATE列的DATE。然后我只是检查了> ='2019-05-01'和<'2019-06-01'之间的日期范围,因为我猜您只在寻找当年5月的数据-
SELECT CAST(edate as date), ENAME,MAX(ETIME),EINOUT,ESABUN
FROM your_table
WHERE CAST(edate as date) >= '2019-05-01'
AND CAST(edate as date) <'2019-06-01'
AND ESABUN = '6112'
AND [EINOUT] = 'IN'
GROUP BY CAST(edate as date), ENAME,EINOUT,ESABUN