表1:
槽号 品味 日期
101 al99.90 2005-1-30
表2:
品味 一车间 二车间 日期
其中一车间的槽号是以1,2,3开头,二车间的槽号是4,5,6开头
品味为7种,是固定的,如果表一中没有,则表二中显示为0。
如:表一中没有品味为al99.00则:
表二:
al99.00 0 0 2005-1-30
品味:al99.90,al99.85,al99.70A,AL99.70,AL99.60 ,AL99.50,AL99.00
从表一到表二怎么做效率高点?
如果表二中己经统计出,则如果再统计时,先删除,再插入或修改
槽号 品味 日期
101 al99.90 2005-1-30
表2:
品味 一车间 二车间 日期
其中一车间的槽号是以1,2,3开头,二车间的槽号是4,5,6开头
品味为7种,是固定的,如果表一中没有,则表二中显示为0。
如:表一中没有品味为al99.00则:
表二:
al99.00 0 0 2005-1-30
品味:al99.90,al99.85,al99.70A,AL99.70,AL99.60 ,AL99.50,AL99.00
从表一到表二怎么做效率高点?
如果表二中己经统计出,则如果再统计时,先删除,再插入或修改
http://community.csdn.net/Expert/topic/3765/3765316.xml?temp=.3524134
http://community.csdn.net/Expert/topic/3765/3765324.xml?temp=.4243738
http://community.csdn.net/Expert/topic/3765/3765288.xml?temp=5.977809E-03
(槽号 char(3),
品味 char(10),
日期 char(10)
);
insert into tab1
select '101','al99.90', '2005-1-30' from dual;
insert into tab1
select '102','al99.90', '2005-1-30' from dual;commit;create table pingwei
(品味 char(10));insert into pingwei values ('al99.90');
insert into pingwei values ('al99.85');
insert into pingwei values ('al99.70A');
insert into pingwei values ('AL99.70');
insert into pingwei values ('AL99.60');
insert into pingwei values ('AL99.50');
insert into pingwei values ('AL99.00');
commit;
select b.品味,nvl(a.车间1,0) 车间1,nvl(车间2,0) 车间2,日期 from(
select 品味,sum(车间1)车间1,sum(车间2)车间2,日期 from
(select 品味,decode(floor(to_number(substr(槽号,1,1))/3),0,1,0) 车间1,
decode(floor(to_number(substr(槽号,1,1))/3),1,1,0) 车间2,
日期 from tab1) a
group by 品味,日期) a,pingwei b
where a.品味(+)=b.品味;
drop table tab1;
drop table pingwei;
---------- ---------- ---------- ----------
AL99.00 0 0
AL99.50 0 0
AL99.60 0 0
AL99.70 0 0
al99.70A 0 0
al99.85 0 0
al99.90 2 0 2005-1-30