[access查询]打卡记录交叉查询的解决方法-咱家是猫
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-查询/SQL语句


[access查询]打卡记录交叉查询的解决方法

发表时间:2007/11/12 10:39:02 评论(2) 浏览(9724)  评论 | 加入收藏 | 复制
   
摘 要:一些打卡记录,需要把记录排成交叉显示
正 文:

前几天一个朋友发过来一个表,是一些打卡记录,需要把记录排成交叉显示,具体要求如下:

一个表
---卡号----/-----日期----/  ---时间----
123456     2006-07-17       08:00
123456     2006-07-17       12:01
123456     2006-07-17       13:31
123456     2006-07-18       08:05
123456     2006-07-18       12:00
123456     2006-07-19       12:00

应生成查询:
---卡号---/ ----日期 --- / --- 时间1 /  时间2 /  时间3
123456  2006-07-17   08:00   12:00   13:31  
123456  2006-07-18   08:05   12:00                     
123456  2006-07-19   12:00 

解决方案:

先建查询1(普通选择查询):

Select 卡号, 日期, "时间" & DCount("[时间]","datarecord","时间<= #" & Format([时间],"Short Time") & "# and 日期 = #" & [日期] & "# and 卡号='" & [卡号] & "'") AS 时间段, 时间
FROM datarecord
GROUP BY 卡号, 日期, "时间" & DCount("[时间]","datarecord","时间<= #" & Format([时间],"Short Time") & "# and 日期 = #" & [日期] & "# and 卡号='" & [卡号] & "'"), 时间
orDER BY 卡号, 日期, 时间;

再建查询2(交叉查询):

TRANSFORM First(查询1.时间) AS 时间之第一条记录
Select 查询1.卡号, 查询1.日期
FROM 查询1
GROUP BY 查询1.卡号, 查询1.日期
PIVOT 查询1.时间段;

具体例子,请移步:http://www.accessbbs.cn/bbs/viewthread.php?tid=2847


Access软件网交流QQ群(群号:198465573)
 
 相关文章
Access查询 交流QQ群群号:54525238 欢迎学习acc...  【宏鹏  2012/10/26】
常见问答
技术分类
相关资源
文章搜索
关于作者

咱家是猫

文章分类

文章存档

友情链接