热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

统计报表的问题

在停车场系统中有jcjl这张表,里面有jqh(机器号),kh(卡号),xm(姓名),images(图像),jrsj(进入时间)我现在做了一个jcbb(进出报表)里面主要的字段有kh(卡号),x
在停车场系统中有jcjl这张表,里面有jqh(机器号),kh(卡号),xm(姓名),images(图像),
jrsj(进入时间)
我现在做了一个jcbb(进出报表)里面主要的字段有kh(卡号),xm(姓名),images1(进门图

像),images2(出门图像),jcrq(进场日期),ccrq出场日期)。
我想根据jcjl表里面的机器号统计出报表来,放在jcbb中形成如下的报表该怎么做:

jcjl表:
kh  xm   jqh  images  jrrq
1   张三  1    2.jpg  2008-3-5 14:23:21
1   张三  2    3.jpg  2008-3-5 15:23:21
1   张三  2    4.jpg  2008-3-6  19:25:47
2   李四  1    5.jpg  2008-3-5 14:23:10
2   李四   2   6.jpg   2008-3-5 15:30:00
jcbb

kh xm images1  images2   jcrq                ccrq
1  张三 2.jpg  3.jpg    2008-3-5 14:23:21  2008-3-5 15:23:21
2  李四 5.jpg  6.jpg    2008-3-5 14:23:10  008-3-5 15:30:00
如果进门或出门没有打卡的话如jcjl表的第三条记录没有进门记录,则在jcbb中不统计或者在

jcbb中将进门信息留空。这样可以实现吗?

11 个解决方案

#1


看看先。

#2


这个问题是不是太难了,我郁闷了好几天都没法解决

#3


引用 2 楼 zl850116 的回复:
这个问题是不是太难了,我郁闷了好几天都没法解决


应该是分不够。

#4


分不够还可以加,肯请大家帮忙解决

#5


楼主你的思路有问题,你的想法根本就不可以实现,如果第一张表里一个人出现了奇数次你怎么知道他是出门没有打卡,还是进门没有打卡呢?
还有就是你也没有明确的规则来划分进门和出门的标准,完全凭的是你主观想法,建议不要把精力花在如何组织查询语句上了,还是好好设计一下
你的表结构吧,时间就是生命。

#6


引用 5 楼 njnu06030609 的回复:
楼主你的思路有问题,你的想法根本就不可以实现,如果第一张表里一个人出现了奇数次你怎么知道他是出门没有打卡,还是进门没有打卡呢? 
还有就是你也没有明确的规则来划分进门和出门的标准,完全凭的是你主观想法,建议不要把精力花在如何组织查询语句上了,还是好好设计一下 
你的表结构吧,时间就是生命。

是吗?看来我的思路确实有问题

#7


如果你的jqh是理解为进出类别的话,还是可以的。
即1表示进,2表示出。如果不是,有楼上说的问题,没有办法知道是出还是进。

#8


jqh就是进出类别啊,jqh=1就是进门,jqh=2就代表出门啊.

#9


那就行了。

#10


可以不用临时表,因为同名的时间列不重复,用count计数就可以了,但写法复杂了,用了临时表简化写法。

CREATE TABLE tb(kh INT, xm VARCHAR(10),jqh INT,images VARCHAR(20),jrrq DATETIME)
GO
INSERT tb SELECT 1,    '张三',  1   ,'2.jpg'  ,'2008-3-5 14:23:21' 
UNION ALL SELECT 1 ,   '张三' , 2  , '3.jpg'  ,'2008-3-5 15:23:21' 
UNION ALL SELECT 1  ,  '张三'  ,2 ,  '4.jpg'  ,'2008-3-6 19:25:47' 
UNION ALL SELECT 2   , '李四'  ,1,   '5.jpg' , '2008-3-5 14:23:10' 
UNION ALL SELECT 2    ,'李四'  ,2,   '6.jpg',  '2008-3-5 15:30:00' 
UNION ALL SELECT 2    ,'李四',  1  , '7.jpg',  '2008-3-6 00:00:00'
UNION ALL SELECT 2    ,'李四',  1  , '8.jpg',  '2008-3-7 00:00:00'
UNION ALL SELECT 2    ,'李四',  2  , '9.jpg',  '2008-3-8 00:00:00'
GO

SELECT identity(int) ID ,* INTO # FROM tb

SELECT identity(int) NID,kh,xm,jqh,images,jrrq INTO #1 FROM # a
WHERE EXISTS(SELECT 1 FROM # WHERE kh=a.kh AND id=a.id + CASE WHEN a.jqh=1 THEN 1 ELSE -1 END and jqh!=a.jqh )

SELECT a.kh,a.xm,a.images image1,b.images image2,a.jrrq jrcq,b.jrrq ccrq FROM #1 a
INNER JOIN #1 b
ON a.nid=b.nid-1
WHERE a.nid%2=1


GO

DROP TABLE #,#1

GO
DROP TABLE tb

#11


怎么我编译不通过了

服务器: 消息 8108,级别 16,状态 1,行 1
无法使用 SELECT INTO 语句向表 '#' 中添加标识列,该表中已有继承了标识属性的列 'xh'。

推荐阅读
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • MySQL多表数据库操作方法及子查询详解
    本文详细介绍了MySQL数据库的多表操作方法,包括增删改和单表查询,同时还解释了子查询的概念和用法。文章通过示例和步骤说明了如何进行数据的插入、删除和更新操作,以及如何执行单表查询和使用聚合函数进行统计。对于需要对MySQL数据库进行操作的读者来说,本文是一个非常实用的参考资料。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • MySQL外键1对多问题的解决方法及实例
    本文介绍了解决MySQL外键1对多问题的方法,通过准备数据、创建表和设置外键关联等步骤,实现了用户分组和插入数据的功能。详细介绍了数据准备的过程和外键关联的设置,以及插入数据的示例。 ... [详细]
  • 本文介绍了在处理不规则数据时如何使用Python自动提取文本中的时间日期,包括使用dateutil.parser模块统一日期字符串格式和使用datefinder模块提取日期。同时,还介绍了一段使用正则表达式的代码,可以支持中文日期和一些特殊的时间识别,例如'2012年12月12日'、'3小时前'、'在2012/12/13哈哈'等。 ... [详细]
  • 模板引擎StringTemplate的使用方法和特点
    本文介绍了模板引擎StringTemplate的使用方法和特点,包括强制Model和View的分离、Lazy-Evaluation、Recursive enable等。同时,还介绍了StringTemplate语法中的属性和普通字符的使用方法,并提供了向模板填充属性的示例代码。 ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • 合并列值-合并为一列问题需求:createtabletab(Aint,Bint,Cint)inserttabselect1,2,3unionallsel ... [详细]
  • 深入理解Java虚拟机的并发编程与性能优化
    本文主要介绍了Java内存模型与线程的相关概念,探讨了并发编程在服务端应用中的重要性。同时,介绍了Java语言和虚拟机提供的工具,帮助开发人员处理并发方面的问题,提高程序的并发能力和性能优化。文章指出,充分利用计算机处理器的能力和协调线程之间的并发操作是提高服务端程序性能的关键。 ... [详细]
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • Java学习笔记之使用反射+泛型构建通用DAO
    本文介绍了使用反射和泛型构建通用DAO的方法,通过减少代码冗余度来提高开发效率。通过示例说明了如何使用反射和泛型来实现对不同表的相同操作,从而避免重复编写相似的代码。该方法可以在Java学习中起到较大的帮助作用。 ... [详细]
author-avatar
心只为你跳国
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有