我把两个select语句的结果集做内连接查询,如何修改语句可以提高执行效率.代码如下:select t.District,
t.Count,
t.set,
t.Area,
t1.Rooms,
t1.Area,
t.set - Rooms as UnRooms,
t.Area - t1.Area as UnArea,
0 as SaleCount,
0 as SaleArea,
0 as UnsaleCount,
0 as UnsaleArea
from
(
select a1.A1 as district,
count(a1.A1) as Count,
nvl(sum(b.b4),0) as Area,
nvl(sum(b.b5),0) as set
from b right join
a1 on nvl(b.b1,b.b2) = a1.A1 and b.b3 = '1'
group by a1.A1,a1.A2
order by a1.A2
) t inner join
(
select a1.A1as district,
nvl(sum(s.s3),0) as Rooms,
nvl(sum(s.s4),0) as Area
from s right join
b on s.s1= b.b6 and s.s2= 1 right join
a1 on nvl(b.b1,b.b2) =a1.A1 and b.b3 = '1'
group by a1.A1,a1.A2
order by a1.A2
) t1 on t.district = t1.district;我知道使用自查询会影响执行效率,但是我实在不清楚该怎么去修改sql语句,求各位大神指教.
t.Count,
t.set,
t.Area,
t1.Rooms,
t1.Area,
t.set - Rooms as UnRooms,
t.Area - t1.Area as UnArea,
0 as SaleCount,
0 as SaleArea,
0 as UnsaleCount,
0 as UnsaleArea
from
(
select a1.A1 as district,
count(a1.A1) as Count,
nvl(sum(b.b4),0) as Area,
nvl(sum(b.b5),0) as set
from b right join
a1 on nvl(b.b1,b.b2) = a1.A1 and b.b3 = '1'
group by a1.A1,a1.A2
order by a1.A2
) t inner join
(
select a1.A1as district,
nvl(sum(s.s3),0) as Rooms,
nvl(sum(s.s4),0) as Area
from s right join
b on s.s1= b.b6 and s.s2= 1 right join
a1 on nvl(b.b1,b.b2) =a1.A1 and b.b3 = '1'
group by a1.A1,a1.A2
order by a1.A2
) t1 on t.district = t1.district;我知道使用自查询会影响执行效率,但是我实在不清楚该怎么去修改sql语句,求各位大神指教.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货