论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Access数据库教程
Tag:2000,2003,2007,查询,sql,,教程,安全,转换,排序,复制,删除,修改,视频教程

Access教程:如何解决打卡记录交叉查询

文章类别:Access数据库 | 发表日期:2012-7-5 14:12:43

Access教程:如何解决打卡记录交叉查询

    今天我们一起来看看下面的表格,是一些打卡记录,需要把记录排成交叉显示,具体要求如下:
一个表
---卡号----/-----日期----/  ---时间----
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、
先建查询1(普通选择查询):
   
Select 卡号, 日期, "时间" & DCount("[时间]","datarecord","时间<= #" & Format([时间],"Short Time") & "# and 日期 = #" & [日期] & "# and 卡号='" & [卡号] & "'") AS 时间段, 时间
FROM datarecord
GROUP BY 卡号, 日期, "时间" & DCount("[时间]","datarecord","时间<= #" & Format([时间],"Short Time") & "# and 日期 = #" & [日期] & "# and 卡号='" & [卡号] & "'"), 时间
orDER BY 卡号, 日期, 时间;

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

TRANSFORM First(查询1.时间) AS 时间之第一条记录
Select 查询1.卡号, 查询1.日期
FROM 查询1
GROUP BY 查询1.卡号, 查询1.日期
PIVOT 查询1.时间段;
视频教程列表
文章教程搜索
 
Access数据库推荐教程
Access数据库热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058