主题:  横竖交叉的表格怎样用SQL语句查询

風雲

职务:普通成员
等级:2
金币:1.0
发贴:281
注册:2001/6/24 14:11:35
#12002/6/7 18:07:21
我这几天要作一个“月报表”自动生成系统。先说说大概情况:
我们每月要报一次表,每次有25张报表,我在这里只向大家请教一张,以管中窥豹。

1、我们每月有许多许多的刑事案件,如杀人、强奸等,每个案件都有自己的特性,如发案时间、受害人情况、犯罪嫌疑人情况、财物损失情况、发案部位等。

2、我用ACCESS作了一个数据库,里面有一个表“案件”,内容有:1、ID(主键);2、案别(如:杀人、强奸、盗窃等,共300多种);3、发案时间(如:当月案件、年内月前案件、年前案件);4、受害人情况(如:死亡、受伤、其他);5、财物损失价值(如:1000元);6、发案部位(如:医院、郊外等)
当然,我实际用的是英文。

3、我想让用户把每个案件的情况都输入后,自动生成报表。

4、表的内容:是一个横竖交叉的表:
表的横联,是案别,有杀人、强奸、盗窃、绑架、其他等。
表的竖联,是具体情况,有1、当月发案;2、年内月前发案;3、年前发案;4、受害人死亡的;5、受害人受伤的;6、受害人其他的;7、财物损失价值;8、在医院发案的;9、在郊外发案的。
这样一来,我们就有横竖交叉的格子45个。

5、我原来的设想是,每个格子都建立一个记录集,如:
当月的杀人案个数是:SELECT sum(id) FROM 案件 WHERE 案别='杀人' AND 发案时间='当月'
盗窃案中财物损失价值:SELECT sum(财物损失价值) FROM 案件 WHERE 案别='盗窃'
这样一来,这个最简单的表格岂不是要建立45个记录集吗?我没累死,恐怕计算机也要累死了。

请高手指点!!拜托!!
一定请客!!



5D荣誉斑竹

职务:普通成员
等级:2
金币:2.0
发贴:654
注册:2000/12/19 10:59:22
#22002/6/7 22:44:24
用交叉表查询?
我以前试过一次,怎么做出的都不知道^_^不过可以利用access的查询向导试试。
还有比UltraDev了,用mx可以中文,多诱人啊!



咬一口

职务:普通成员
等级:1
金币:0.0
发贴:107
注册:2002/1/20 21:07:01
#32002/6/8 6:43:57
感觉这个在规划的阶段很重要(就是数据库的设计)。我4月份的自学考试数据库的最后一到题和这个类似。数据库设计好了。可以减少很多记录集的。我对这个方面也很感兴趣。能不能说的详细一下。这样也好大家来帮你。



topgun

职务:普通成员
等级:2
金币:1.0
发贴:366
注册:2002/3/17 20:53:44
#42002/6/8 13:29:16
或者可以试试数据表关联!



風雲

职务:普通成员
等级:2
金币:1.0
发贴:281
注册:2001/6/24 14:11:35
#52002/6/9 10:20:54
谢谢大家,我用交叉表查询,成功了。!



風雲

职务:普通成员
等级:2
金币:1.0
发贴:281
注册:2001/6/24 14:11:35
#62002/6/9 10:24:40
交叉表查询时,其列可以我们自己规定,如“杀人”,“强奸”等,但其横项是否也可以实现强制规定呢?因为我们的表是固定的,如果没有横项中的一项,就会出现缺项现象。
如:横项在本月没有“年前”的案件,但我们也让他显示出来,只不过是空罢了。