【问题标题】:sum of values from 3 tables来自 3 个表的值的总和
【发布时间】:2015-04-09 09:48:16
【问题描述】:

我有 3 张桌子:

table A: building_id, region_code
table B: building_id, storey_no
table C: building_id, storey_no, room_no

什么查询将计算每个区域中所有建筑物的房间号总和,其中层数在一定范围内(以下是示例查询,它不起作用,因为我不知道如何将表 B 包含在其中层数等条件)?

SELECT SUM(C.room_no) AS room_sum, A.building_id 
FROM A,B,C
WHERE A.region_code=1 
AND A.building_id=C.building_id 
AND B.storey_no>3
AND B.storey_no<10
GROUP BY C.building_id,C.room_no

【问题讨论】:

    标签: postgresql select sum


    【解决方案1】:

    尝试从所有三个表中加入 building_id,如下所示:

    SELECT SUM(C.room_no) AS room_sum, C.building_id
    FROM A INNER JOIN B
    ON A.building_id = B.building_id
    INNER JOIN C
    ON A.building_id = C.building_id
    WHERE A.region_code=1
    AND B.storey_no>3
    AND B.storey_no<10
    GROUP BY C.building_id
    

    【讨论】:

    • 此查询不起作用,因为它不会汇总建筑物中的房间数量,而是多次显示同一建筑物,但每层都有不同的房间号。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-30
    • 2015-06-25
    • 1970-01-01
    • 2017-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多