oracle两表查询的问题!!

zhangwenmin 2009-01-12 10:06:31
表1、 表2、

id date shop 地点 总台数(T-T) 剩余台数 id date1 shop 地点 分配台数
1 01-09 东莞 黄埔 10 5 2012 01-10 东莞 黄埔 5
2 01-09 汕头 增城 10 10 2014 01-10 广州 增城 40
3 01-09 广州 增城 40 0 4567 01-10 东莞 增城 10
4 01-09 东莞 增城 20 10


要得出这样的记录:

id date shop 黄埔总数 增城总数
1 01-10 东莞 10 20
2 01-10 汕头 10
3 01-10 广州 40

注意:黄埔总数和增城总数必须是(剩余台数)+(分配台数)不是从总台数里面查出来的。
...全文
96 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
maqinqin 2009-01-12
  • 打赏
  • 举报
回复
楼主的最后得出的记录里的id和日期 好像不是来自表1 表2
我写了下:
create table ab(id number
,"DATE" date
,shop varchar2(4 char)
,地点 varchar2(4 char)
,"总台数(T-T)" number
,剩余台数 number)
insert into ab values(1,to_date('2009-1-10','YYYY-MM-DD'),'东莞','黄埔',10,5);
insert into ab values(2,to_date('2009-1-10','YYYY-MM-DD'),'汕头','增城',10,10);
insert into ab values(3,to_date('2009-1-10','YYYY-MM-DD'),'广州','增城',40,0 );
insert into ab values(4,to_date('2009-1-10','YYYY-MM-DD'),'东莞','增城',20,10);

create table bc(id number
,DATE1 date
,shop varchar2(4 char)
,地点 varchar2(4 char)
,分配台数 number)

insert into bc values(2012,to_date('2009-01-09','YYYY-MM-DD'),'东莞','黄埔',5 ) ;
insert into bc values(2014,to_date('2009-01-09','YYYY-MM-DD'),'广州','增城',40 ) ;
insert into bc values(4567,to_date('2009-01-09','YYYY-MM-DD'),'东莞','增城',10 ) ;
select distinct '09-10'
,shop
,sum(decode(地点,'黄埔',台数,0)) over(partition by shop) 黄埔
,sum(decode(地点,'增城',台数,0)) over(partition by shop) 增城
from
(select shop,地点,剩余台数 台数 from ab
union all
select shop,地点,分配台数 from bc) order by shop

结果:
1 09-10 东莞 10 20
2 09-10 广州 0 40
3 09-10 汕头 0 10
hugh_9 2009-01-12
  • 打赏
  • 举报
回复
还有一个nvl2 函数
zhangwenmin 2009-01-12
  • 打赏
  • 举报
回复
一楼大哥缘分啊,我怎么不知道有nvl()这函数呢?感谢你了,分一定给!!!
eviler 2009-01-12
  • 打赏
  • 举报
回复
又是行转列 ,中午帮你搞
WangZWang 2009-01-12
  • 打赏
  • 举报
回复
--try
select min(a.id) id,b.date1 as date,a.shop,
sum(case when a.地点='黄埔' then a.剩余台数+nvl(b.分配台数,0) else 0 end) 黄埔总数,
sum(case when a.地点='增城' then a.剩余台数+nvl(b.分配台数,0) else 0 end) 增城总数
from 表1 a left join 表2 b on a.shop=b.shop
group by a.shop,b.date1


17,086

社区成员

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

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