一个月31天,报表统计

zwbhanye 2008-05-28 05:49:28
机动车检测表(车牌号 VARCHAR(10),检测日期 DATETIME,...)

报表格式如下
车牌号 1 2 3 4 5 6 7 8 9 10 ...31

如果车牌号为0561的1号做过检测,则1号下面,填1,否则为0
后面的车,和日期等同
检测表里,如果今天一辆车做过检测就有一条记录在
问,怎么样才能得到上面报表的统计数量.
知道答案的请告诉我可以吗?写一个oracle存储过程.先谢谢了!
...全文
191 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zwbhanye 2008-05-30
  • 打赏
  • 举报
回复
9楼你有更好的方法吗?
8楼的我想只要在sum用decode转换一下就可以得到我想要的功能了!@
hebo2005 2008-05-29
  • 打赏
  • 举报
回复
用decode也可以做的,必竟也可以算固定列的,就是要写31个decode

select 车牌号 ,to_char(检测日期 ,'yyyymm') 月份
sum(decode(to_char(检测日期 ,'dd'),'01',1,0)) “1”
sum(decode(to_char(检测日期 ,'dd'),'02',1,0)) “2”
sum(decode(to_char(检测日期 ,'dd'),'03',1,0)) “3”
.
.
.
.
.
sum(decode(to_char(检测日期 ,'dd'),'31',1,0)) “31”
from a
where 检测日期 between 日期范围
group by 车牌号 ,to_char(检测日期 ,'yyyymm')
nb95463034 2008-05-29
  • 打赏
  • 举报
回复
按车号排序的好处是,一个车号一定在一块,在找到这个车号的第一个时直接X记录就行了,如果不是了后面也不可能出现这个车号
nb95463034 2008-05-29
  • 打赏
  • 举报
回复
1 记录按 车号+年月日 group by
2 在1的基础上按车号排序(其实1应该已经做好了)
3 按1的SQL语句打开游标,扫描记录
4 那天有值就在对应列赋值(如果没这个车记录先X一条)
5 扫描完了就搞定

BTW 代码就不写了

类似是

sql:='select 车号,年月日 from 表 where 年月='''||X年X月||'''group by 车号,年月日 ';
open cCur for sql
loop
fetch cCur into X,Y;
exit when cCur%NOTFOUND;
然后就边扫描边更新记录....

end loop;
hxmsammi 2008-05-29
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 hebo2005 的回复:]
用decode也可以做的,必竟也可以算固定列的,就是要写31个decode
SQL code
select 车牌号 ,to_char(检测日期 ,'yyyymm') 月份
sum(decode(to_char(检测日期 ,'dd'),'01',1,0)) “1”
sum(decode(to_char(检测日期 ,'dd'),'02',1,0)) “2”
sum(decode(to_char(检测日期 ,'dd'),'03',1,0)) “3”
.
.
.
.

[/Quote]

我有一个需求就是像你那么做的,这样做还不是做累计这个车牌在1号做了多少次检测么,原来楼主的意思是要统计次数啊,早说么
我这边有一个现成的,昨晚就可以贴给你了啊
wzy_love_sly 2008-05-28
  • 打赏
  • 举报
回复
..老龟如此有名 汗
hxmsammi 2008-05-28
  • 打赏
  • 举报
回复
这个很麻烦啊,之前我做过这样的统计,不过当时因为都是数据的累加所以用decode做的,现在这个好像decode不好做啊

明天再想想。。。
ilovemk 2008-05-28
  • 打赏
  • 举报
回复
又是行列转换之类的问题
hebo2005 2008-05-28
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20070830/22/3adc7d42-961e-40ed-b1de-29368c0015dc.html
他写的是sql-server下的,oracle下要转换下
hebo2005 2008-05-28
  • 打赏
  • 举报
回复
如果是用PB做界面,用交叉表做就行了
如果是要数据库出结果
搜索行列转换
或者潇洒老乌龟

看样子我把老乌龟的贴子收藏一下,随时准备贴过来

17,380

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧