大概是这样的一个操作,要从第一张表里把每个机构下的旅客数插入第二张表,但是第二张表要多计算出几个字段了,比如1月份增加了多少,2月份又比上月增加了多少,依次。我大概写了哈过程,不会计算的字段我空着的,音乐只有用我插入的表再来才能进行计算。
insert into nowtable(
date_key 日期key(存月底最后一天)
org_no 机构code
cust_num 客户数
newcust_num_1, -- 1月新增客户数
newcust_num_2, --2月新增客户数
newcust_num_3, --3月新增客户数
newcust_num_4, --4月新增客户数
newcust_num_5 ,--5月新增客户数
newcust_num_6,-- 6月新增客户数
newcust_num_7,-- 7月新增客户数
newcust_num_8 ,--8月新增客户数
newcust_num_9 ,--9月新增客户数
newcust_num_10,-- 10月新增客户数
newcust_num_11 ,--11月新增客户数
newcust_num_12 ,--12月新增客户数
newcust_num_year --年内新增客户数
)
select
to_date(20140331,'yyyymmdd'),
机构号,
count(*),
'', -- 1月新增客户数
'', --2月新增客户数
'', --3月新增客户数
'', --4月新增客户数
'' ,--5月新增客户数
'',-- 6月新增客户数
'',-- 7月新增客户数
'' ,--8月新增客户数
'' ,--9月新增客户数
'',-- 10月新增客户数
'' ,--11月新增客户数
'' ,--12月新增客户数
'' --年内新增客户数
from datatable要达到格式是这样的
date_key 机构号 客户数 一月新增 二月新增 3月新增 4月新增
20140131 101 100 100 0 0 0
20140228 101 120 100 20 0 0
20140331 101 150 100 20 30
insert into nowtable(
date_key 日期key(存月底最后一天)
org_no 机构code
cust_num 客户数
newcust_num_1, -- 1月新增客户数
newcust_num_2, --2月新增客户数
newcust_num_3, --3月新增客户数
newcust_num_4, --4月新增客户数
newcust_num_5 ,--5月新增客户数
newcust_num_6,-- 6月新增客户数
newcust_num_7,-- 7月新增客户数
newcust_num_8 ,--8月新增客户数
newcust_num_9 ,--9月新增客户数
newcust_num_10,-- 10月新增客户数
newcust_num_11 ,--11月新增客户数
newcust_num_12 ,--12月新增客户数
newcust_num_year --年内新增客户数
)
select
to_date(20140331,'yyyymmdd'),
机构号,
count(*),
'', -- 1月新增客户数
'', --2月新增客户数
'', --3月新增客户数
'', --4月新增客户数
'' ,--5月新增客户数
'',-- 6月新增客户数
'',-- 7月新增客户数
'' ,--8月新增客户数
'' ,--9月新增客户数
'',-- 10月新增客户数
'' ,--11月新增客户数
'' ,--12月新增客户数
'' --年内新增客户数
from datatable要达到格式是这样的
date_key 机构号 客户数 一月新增 二月新增 3月新增 4月新增
20140131 101 100 100 0 0 0
20140228 101 120 100 20 0 0
20140331 101 150 100 20 30
解决方案 »
- 关于字符串缓冲区太小的问题,ORA-06502!在线等啊!
- oracle存储过程java source返回一个list集合
- SQL编写
- PL/SQL 游标
- 数据库表不建主键,对于程序开发会带来什么缺点?
- 如何确定某一天所在的周是一年的第几周?
- 新手提问,关于查询已经创建好的VIEW里面全部字段的问题。(多表的UNION起来的情况很棘手,请有经验的朋友来看一下)
- 一个SQL语句为什么总提示错误?
- 求各位大大教我怎么用使用 Tkprof 分析 ORACLE 跟踪文件
- solaris 10 中安装oracle 客户端
- 百万级数据读取问题
- 两个没有直接连接的机器上的ORACLE能不能用DBLINK连接的问题
insert into nowtable(
date_key 日期key(存月底最后一天)
org_no 机构code
cust_num 客户数
newcust_num_1, -- 1月新增客户数
newcust_num_2, --2月新增客户数
newcust_num_3, --3月新增客户数
newcust_num_4, --4月新增客户数
newcust_num_5 ,--5月新增客户数
newcust_num_6,-- 6月新增客户数
newcust_num_7,-- 7月新增客户数
newcust_num_8 ,--8月新增客户数
newcust_num_9 ,--9月新增客户数
newcust_num_10,-- 10月新增客户数
newcust_num_11 ,--11月新增客户数
newcust_num_12 ,--12月新增客户数
newcust_num_year --年内新增客户数
)
select
to_date(20140331,'yyyymmdd'),
机构号,
count(*),
'', -- 1月新增客户数
'', --2月新增客户数
'', --3月新增客户数
'', --4月新增客户数
'' ,--5月新增客户数
'',-- 6月新增客户数
'',-- 7月新增客户数
'' ,--8月新增客户数
'' ,--9月新增客户数
'',-- 10月新增客户数
'' ,--11月新增客户数
'' ,--12月新增客户数
'' --年内新增客户数
from datatable
每个月的数据,后面几个月份为空,前面几个月的要从前面copy,只有当月的才有用
你就先统计出当月的客户数,然后根据日期的那个字段,把上个月的对应记录中把前几个月的新增客户数查询出来更新到本月的记录里,上个月记录中的客户总数和本月的客户总数差值就是本月的新增客户数
分两步走