报表的统计问题
我是新手,请多多关照!我做一个报表是一个船舶公司的,里面的这段是这样的
ship: (记录船只的信息)
id type tend long
25 客船 up 30m
26 货船 up 50m
27 客船 up 30m
28 货船 up 50m
29 客船 down 30m
30 货船 down 50m
visitor: (记录来访船只)
id visitetime shipid
5 2008-1-2 25
6 2008-1-3 25
7 2008-2-5 27
8 2008-2-5 28
9 2008-2-5 25
10 2008-2-9 30
现在我需要统计某个月内各种船方向是up或down的只数:
如一月分up的船只
如果要写写sql语句大概是(加深理解,现实中没有用到):
select * from visitship,ship where visitship.shipid=ship.id and tend='up' and type='客船' and visittime between '2008-1-1' and '2008-2-1'
现在我写一个存储过程,功能是实现了在某月的船只的信息:
select * from visitship,ship where visitship.shipid=ship.id and visittime between '2008-1-1' and '2008-2-1'
我想在报表里面进行对船只的统计,统计从存储过程里面出来的数据那些是方向是up的客船,货船;
方向是down的客船,货船,并且除以30得到他的日平均船流量
得到如下的图表(表格边框没能贴出来)
Up down
客船 货船 其他 客船 货船 其他
20 20 10 12.3 21 12
我要提问的就是:
1.怎么得到各种船的总数(不显示详细资料的,只要统计完的数)并且除以月份,得到平均数.(主要解决这个问题)
2.怎么只打印统计的一行,不要显示下面的一易做图空白(这些空白本来是放详细资料了,现在把他隐藏了,但是还是占的地方)
谢谢各位高手了,急着要完工,请各位帮帮忙!
--------------------编程问答--------------------
补充::
得到如下的图表(表格边框没能贴出来)
Up down
客船 货船 其他 客船 货船 其他
20 20 10 12.3 21 12
--------------------编程问答-------------------- 自己订,在线等 --------------------编程问答-------------------- 你要达到的效果,
---------------------------------------
Up down
客船 货船 其他 客船 货船 其他
20 20 10 12.3 21 12
-----------------------------------------
可以由上面两个表生成这样一个临时表,然后再用水晶报表进行输出,就容易多了。 --------------------编程问答-------------------- 使用交叉表实现
语句(Access):
SELECT count(*) as tt , a.tend, a.type
FROM ship as a left join visitor AS b
on a.id=b.shipid
GROUP BY a.tend, a.type;
注意:使用left join
交叉表行保持为空,列为(从上往下):type,trend,汇总字段为tt的汇总
然后再设置交叉表的显示样式就行了
交叉表左上角缺个角,你可以自己画一横一竖两条线补上去就成一个完整的表格了。
--------------------编程问答-------------------- ding --------------------编程问答--------------------
补充:.NET技术 , 图表区