Office中国论坛/Access中国论坛

标题: 时间判断 [打印本页]

作者: 晴空小呵    时间: 2009-1-14 17:46
标题: 时间判断
各位好:
我想做一个 查询,如下
表a
组别   班务
a          17:00-24:00
b          08:00-17:00

我要实现的功能是:
组别  8-9  9-10  10-11 11-12  12-13…………  22-23  23-24
a        0      0        0          0        0                        1          1
b        1      1        1          1        1                        0          0

就是a的班务为17:00-24:00,b的班务为8:00-17:00,我想知道各时段那个应该班组在工作,在就显示1,不再就显示0。

谢谢了。
作者: todaynew    时间: 2009-1-14 19:20
select 组别,版务,iif(版务=17:00-24:00,'当值','休班') as [17:00-24:00],iif(版务=08:00-17:00,'当值','休班') as [08:00-17:00] from 表a


组别          班务            17:00-24:00    08:00-17:00
a          17:00-24:00              当值                   休班
b          08:00-17:00              休班                   当值

[ 本帖最后由 todaynew 于 2009-1-14 19:24 编辑 ]
作者: 晴空小呵    时间: 2009-1-15 08:59
呵呵,谢谢,我想要的结果是将17-24拆分到每一个时间段,列标题必须是,0-1,1-2,2-3…………23-24
作者: 晴空小呵    时间: 2009-1-15 09:00
谢谢各位高手,帮帮小弟,这个问题我想了好多办法都实现不了,
作者: Henry D. Sy    时间: 2009-1-15 09:21
不是很明白您的意思
最好有例子
作者: Henry D. Sy    时间: 2009-1-15 10:10
原帖由 晴空小呵 于 2009-1-15 09:00 发表
谢谢各位高手,帮帮小弟,这个问题我想了好多办法都实现不了,

作者: 晴空小呵    时间: 2009-1-15 13:43
哈哈,谢谢版主,我要实现的功能就是将您表a中的数据,最终要实现jg的功能。谢谢。
作者: 晴空小呵    时间: 2009-1-15 14:31
版主,我做了一个例子,实现了0点到1点上班的班组统计,其他时间段也是如此,请版主帮助,另外,如果只上半个小时的班,就计0.5


谢谢了。
作者: Henry D. Sy    时间: 2009-1-15 14:39
1. 什么意思
2. 只上半个小时,怎么知道上半班
3、表中班组有重复
作者: 晴空小呵    时间: 2009-1-16 12:37
呵呵,版主,我的意思是表--“排班”中,不同的组在不同的日期上不同的班务,我要实现的功能就是:根据每个班务请款,统计这个班务在24个时间段的每个小时上班时间。
例如:
a班组,上17:00-24:00,那么,这个班组在17-18的查询列里就显示1,18-19查询列里显示1,……23-24的查询列里显示1,其余时间段都显示为0.
c班组,上8:30-17:30,那么,7-8这个时间段他只上了半个小时,就用0.5显示,其余同a班组。
组别   班务
a          17:00-24:00
b          08:00-17:00
c           08:30-17:30

我要实现的功能是:
组别  8-9  9-10  10-11 11-12  12-13…………  22-23  23-24
a        0      0        0          0        0                                   1          1
b        1      1        1          1        1                                   0          0
c         0.5   1    1          1        1                                   0          0
就是这个样子,
作者: Henry D. Sy    时间: 2009-1-16 20:03
c班组,上8:30-17:30,那么,7-8这个时间段他只上了半个小时,就用0.5显示,其余同a班组。
8:30-17:30怎么会有7-8这个时间段??
作者: 晴空小呵    时间: 2009-1-19 10:12
呵呵,版主,这个我肯定是算错了,应该是8-9这个时段算成0.5小时,呵呵。
作者: 晴空小呵    时间: 2009-1-19 18:07
顶起来,各位,谁会呀,帮帮忙,谢了,
作者: Henry D. Sy    时间: 2009-1-20 07:22
您的描述跟附件有区别,
好好将问题整理一下,
重新描述一下问题和要求(要跟附件一致)
作者: 晴空小呵    时间: 2009-1-20 08:56
谢谢版主,我重新整理了一下,并且做了一张图,您看看是否表述明白,谢谢了。
作者: Henry D. Sy    时间: 2009-1-20 09:26
表设计有问题,当中有吃饭的应该分成两条记录。
作者: 晴空小呵    时间: 2009-1-20 09:51
o ,这个没问题,您看我的那个案例,查询中,我已经将吃饭前和吃饭后的班务分开了,查询名称为fq,fh
作者: Henry D. Sy    时间: 2009-1-20 09:59
哪你重新把已经将吃饭前和吃饭后的班务分开了的附件传上来
作者: 晴空小呵    时间: 2009-1-20 10:01
版主辛苦,您看一下,我每天都要计算附件excel中的数据,很繁琐,而且总是出错,所以我想用数据库,提前将公式写好,每次导入数据就能出来结果。
至于您说的表设计问题,我已经在附件access查询--饭前饭后做好,您看看是否可以。
作者: Henry D. Sy    时间: 2009-1-20 10:08
不是饭前饭后的问题
而是应该有两条记录
作者: boy1    时间: 2009-1-20 13:20
标题: 来看看
来看看
作者: 晴空小呵    时间: 2009-1-20 13:59
谢谢版主,我自己将查询-“饭前饭后”用excel合并成表-“班务1”,见附件,您看看是不是要这样的表,若是的话,我应该如何做?另外我记得以前好像有个什么转换能实现将查询-“饭前饭后”转换成表-“班务1”,版主帮着想想最好能让查询自动实现,人工操作越少越好,减少出错的可能性。
作者: Henry D. Sy    时间: 2009-1-21 07:07
基础数据有点乱,既然有日期,班务就不应该跨日。
作者: 晴空小呵    时间: 2009-1-21 12:26
恩,不过这个没关系,因为算出来后,自然就会将0点以后的数据放在第二天了。




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