-1

这是我的问题。我有三个 Oracle 表。

建表:

Building_Id | 建筑_描述
----------------------------------
B1 | 1号楼

桌房:

Building_Id | 房间号 | 房间_Sqft | Floor_ID
------------------------------------------
B1 | R1 | 555 | F1
B1 | R2 | 333 | F1
B1 | R3 | 第666章 F2
B1 | R4 | 111 | F2

表:地板

Building_Id | 楼层_ID | 楼层_Sqft
----------------------------------
B1 | F1 | 999
B1 | F2 | 888

我想要完成的是一组看起来像这样的总和:

Building_Id | Sum_of_Floors | Sum_of_Rooms
------------------------------------------
B1 | 1887 | 1665

由于楼层的房间总和不等于楼层的总和,所以不是将房间加起来两次那么简单。关于如何构建查询以获得我需要的任何提示?

4

2 回答 2

0

您应该能够编写查询,例如:

select
    building_id,
    sum_floors = (select sum(floor_sqft) from floor f where f.building_id = b.building_id),
    sum_rooms = (select sum(room_sqft) from room r where r.building_id = b.building_id
from building b
于 2013-05-24T22:01:38.317 回答
0
SELECT Building_Id,
       (SELECT SUM(Floor_SqFt)
          FROM Floor f
         WHERE f.Building_ID = b.Building_Id) Sum_of_Floors,
       (SELECT SUM(Room_SqFt)
          FROM Rooms r
         WHERE r.Building_ID = b.Building_Id) Sum_of_Rooms
  FROM building b
于 2013-05-24T22:02:12.273 回答