用数据库自动生成报表?
有一个表radio结构如下
id,time,province,city,traffic
1,2006-3-1 00:00.00,hubei,wuhan,119.2
2,2006-3-1 00:00.00,hubei,huangshi,22.8
2,2006-3-1 00:00.00,zejiang,jiangsu,22.8
....
33,2006-3-1 01:00.00,china,wuhan,58
34,2006-3-1 01:00.00,china,shanghai,99.8
...
每天统计24个小时traffic流量
然后我想在程序中实现客户自己来选择查询时间,country,city, 还可以求一天,或者就是求那个privnce的traffic流量,或者某个具体city的流量,并且可以查询平均traffic的,求总的traffice的,请问这样如何在数据库中实现:
比如我想知道湖北省在3月1号-3月8号的平均流量,那么用sql就是
select avg(traffic)
from radio
where time>='2006-3-1' and time<'2006-3-5'
and province ='hubei'
可以让用户实现各种组合条件的查询,请问通过界面结合数据库来实现?
欢迎大家一起讨论
问题点数:100、回复次数:7Top
1 楼lsqkeke(可可)回复于 2006-03-07 19:25:23 得分 50
界面指定查询的条件 向SQL传递条件的参数值!
需要用动态SQL语句实现!
另外,根据查询需要,组成不同结构的SQL语句Top
2 楼Rubi(浪迹Csdn各个板块!MS-Borland-IBM-SUN-水区-在去哪里呢?)回复于 2006-03-07 22:48:25 得分 0
有点迷迷糊糊的Top
3 楼ewdragon(六月芳菲)回复于 2006-03-08 09:01:11 得分 10
时间好像不能用大于小于比吧。。。一般我都用 datediffTop
4 楼chinank(中国南开)回复于 2006-03-08 10:36:52 得分 20
where time>='2006-3-1' and time<'2006-3-5'
---------------------------------------------
做个自定义函数
CREATE function dbo.fc_str(@a datetime(8),@b datetime(8))
returns double(10)
……
where time>=@a and time<@b
……
return …
Top
5 楼chinank(中国南开)回复于 2006-03-08 10:37:58 得分 0
调用这个函数时,用界面传来用户选择的日期做参数即可,Top
6 楼Rubi(浪迹Csdn各个板块!MS-Borland-IBM-SUN-水区-在去哪里呢?)回复于 2006-03-08 21:37:53 得分 0
我上面的例子只是举例说明如果用户想查询两个时间段之间的平均流量,呵呵,今天想了想,还是没有什么头绪了Top
7 楼ReViSion(和尚)回复于 2006-03-08 23:40:13 得分 20
只能那样啦,把用户输入的条件和要求操作的类型
作为参数传给一个过程,用过程来实现Top




