Oracle 统计查询

来源:百度知道 编辑:UC知道 时间:2024/05/25 14:29:14
Table A:
name num(数量) wgt(重量)date(日期)
1 1 11.34 2009-10-01
1 1 12.34 2009-10-02
1 1 13.34 2009-10-03
1 1 14.34 2009-10-04
1 1 15.34 2009-10-05
1 1 16.34 2009-10-06
1 1 17.34 2009-10-07
1 1 18.34 2009-10-08
1 1 87.34 2009-11-01
1 1 98.34 2009-11-02

2 1 21.34 2009-10-01
2 1 32.34 2009-10-02
2 1 43.34 2009-10-03
2 1 54.34 2009-10-04
2 1 65.34 2009-10-05
2 1 76.34 2009-10-06
2 1 87.34 2009-10-07
2 1 98.34 2009-10-08
2 1 87.34 2009-11-01
2 1 98.34 2009-11-02

UI:
日期控件 2009-10-01 至2009-10-02 统计查询

姓名 当前支数 当前量 月统计支数 月统计量

当前支

没太懂,不知道你怎么处理跨月的情况,这个我不考虑了。这个应该不难,和我们的报表比差远了。

在TableA 上建立函数to_char(date,'yyyy-mm-dd')索引,你上面的查询时不走索引的,全表扫描当然慢。

如果想坐在一个查询里可以这样:
Select
Sum(Case
When date between date_min and date_max then
num
Else
0
End) as 当前支数,
Sum(Case
When date between date_min and date_max then
wgt
Else
0
End) as 当前重量
Sum(num)as 月累计支数,
Sum(wgt)as 月累计重量
From TableA
Where to_char(date,'yyyy-mm') like '2009-10%';

没看懂你要做什么,写详细点哦,50分呢...

你的意思是?