请教一条查询语句(建表语句,初始化数据已做好)

cyc123007512 2012-01-11 04:12:46

--地区表
create table places(
id number primary key,
name varchar2(12)
);
insert into places(id,name) values(1,'广州');
insert into places(id,name) values(2,'深圳');
insert into places(id,name) values(3,'珠海');
insert into places(id,name) values(4,'佛山');


--码头表
create table docks(
id number primary key,
name varchar2(12)
);
insert into docks(id,name) values(1,'深圳湾');
insert into docks(id,name) values(2,'大亚湾');
insert into docks(id,name) values(3,'马六甲湾');


--统计信息主表
create table info_main(
id number primary key,
place1 varchar2(12),--起运港口(对应places的id,下同)
place2 varchar2(12),--中转港口1
place3 varchar2(12),--中转港口2
place4 varchar2(12)--终点港口
);
insert into info_main(id,place1,place2,place3,place4) values(1,1,2,3,4);
insert into info_main(id,place1,place2,place3,place4) values(2,1,2,2,4);
insert into info_main(id,place1,place2,place3,place4) values(3,1,2,3,3);
insert into info_main(id,place1,place2,place3,place4) values(4,2,2,3,4);


--箱信息表
create table box(
id number primary key,
info_main_id number,--统计主表id
dock_id number,--对应码头信息
box20 number,--20号箱
box40 number--40号箱
);
insert into box(id,info_main_id,dock_id,box20,box40) values(1,1,1,23,34);
insert into box(id,info_main_id,dock_id,box20,box40) values(2,1,2,12,34);
insert into box(id,info_main_id,dock_id,box20,box40) values(3,2,3,34,6);
insert into box(id,info_main_id,dock_id,box20,box40) values(4,3,4,67,78);


--港湾信息表
create table dock_info(
id number primary key,
info_main_id number,--统计主表id
dock_id number,--对应码头信息
other varchar(20)--其它信息
);
insert into dock_info(id,info_main_id,dock_id,other) values(1,1,1,'备注');
insert into dock_info(id,info_main_id,dock_id,other) values(2,1,2,'备注');
insert into dock_info(id,info_main_id,dock_id,other) values(3,2,3,'备注');
insert into dock_info(id,info_main_id,dock_id,other) values(4,2,4,'备注');
insert into dock_info(id,info_main_id,dock_id,other) values(5,3,2,'备注');
insert into dock_info(id,info_main_id,dock_id,other) values(6,4,3,'备注');

输入的统计条件:dock_id
要输出的结果:
地区:对应地区表的名字
航次:info_main中地区出现的次数,place1--4的值凡是与places中的id对应上则算一次,重复的值不算

insert into info_main(id,place1,place2,place3,place4) values(1,1,2,3,4);
以上数据应统计出的结果:
地区 航次
广州 1
深圳 1
珠海 1
佛山 1

insert into info_main(id,place1,place2,place3,place4) values(2,4,2,2,1);
以上数据应统计出的结果:
地区 航次
广州 1
深圳 1
珠海 0
佛山 1

装载量:表box中的box20+box40*2



地区 航次 装载量

广州 3 288--(67+56+40+145)
深圳 4 288--(67+56+40+145)
珠海 3 248--(67+56+145)
佛山 4 143--(67+56+40)







...全文
324 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
浅忆流觞 2013-06-28
  • 打赏
  • 举报
回复
引用 4 楼 starytx 的回复:
不懂
+1
  • 打赏
  • 举报
回复
zhf24148517 2013-06-28
  • 打赏
  • 举报
回复
一年半的帖子,够老
starytx 2013-06-28
  • 打赏
  • 举报
回复
不懂
  • 打赏
  • 举报
回复
,裆的光辉会照耀着你,阿门!

17,090

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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