Office中国论坛/Access中国论坛

标题: 请教关于月份统计和时间"节奏"计算 [打印本页]

作者: zhasms    时间: 2009-4-29 21:25
标题: 请教关于月份统计和时间"节奏"计算
本帖最后由 zhasms 于 2009-5-3 13:39 编辑

材料号      上线时间                            下线时间              下一块上线时间时    节奏
L205        20081231143306        20081231222936  
L206        20081231144706        20081231223812
L207        20081231144051        20081231224756
L440        20090131130453        20090131213956
L442        20090131151752        20090131221823
L068        20090228012948        20090228045023

如上表所示:   L205的下一块上线时间就是L206的上线时间为20081231144706,L205的节奏就是(上线时间)-(下一块上线时间)=14M
对于时间转换可以用DATESERIAL和TIMESERIAL,现在要问的是怎么把"下一块上线时间"写上去,还有材料号在表里是不按顺序排列的,如图所示.L207后面紧跟着的是L440而不是L208,   L068是这个表中的第一条记录,第二条记录是L205

1.要求计算月份,根据每月月末22点为计算点,如4月分为3月31日22点-4月30日22点
2.一组数据中根据时间先后排序,计算节奏,即计算时间最接近的2条记录之间的时间差

具体问题和示例见附件(附件格式和例表可能不一样,但大概是这么个意思)
谢谢各位大虾先
作者: ui    时间: 2009-4-30 02:24
要用临时表 并且要写程序来实现
作者: zhasms    时间: 2009-5-2 07:10
有没有办法用SQL直接写出来!
作者: Henry D. Sy    时间: 2009-5-2 09:05
首先时间日期应该用时间日期格式
作者: zhasms    时间: 2009-5-3 13:39
还是要请各位大虾帮忙阿!
作者: ACMAIN_CHM    时间: 2009-5-3 17:49
终于把数据贴出来了。

:(注意是猜,猜不对你就自己改吧
[上线时间]为 数字型。表名为 yourTable

怎么把"下一块上线时间"写上去
update yourTable
set 下一块上线时间时=dmin('上线时间', 'yourTable','上线时间>' & 下线时间)

1.要求计算月份,根据每月月末22点为计算点,如4月分为3月31日22点-4月30日22点
你的 上线时间 转换为 日期型后 + 2 小时即可。时间加法参见dateadd()函数, 或者直接 date+2/24, 然后取月份即可。

2.一组数据中根据时间先后排序,计算节奏,即计算时间最接近的2条记录之间的时间差
根据时间先后排序 order by 时间
计算节奏 (上线时间 -  dmin('上线时间', 'yourTable','上线时间>' & 下线时间 ) 单位为天,



******************
*  一切皆有可能  *
******************

.
ACMAIN - Access论坛回贴准则(个人).
.






欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3