使用count函数加入子查询

时间:2018-02-02 09:33:09

标签: sql oracle

我有四张桌子:

  1. Room(保留房间详情)

  2. property(保存属性详情)

  3. property interest(将客户与属性相关联的表格      感兴趣)
  4. buying_potential_customer(客户详情)。
  5. 我目前有这个查询,告诉我每个房产有多少房间。

    SELECT
      property.property_id,
      property.property_address_first_line,
      COUNT(room.property_id) AS number_of_rooms
    FROM room
    INNER JOIN property
      ON room.property_id = property.property_id
    GROUP BY property.property_id,
             property.property_address_first_line
    ORDER BY property.property_id;
    

    还需要将property_interest和buying_potential兴趣加入。

    这是物业权益表

    property interest table

    这是购买潜在客户表

    buying potential customer

    最后我需要的是,物业权益的数据与买方的物业相匹配,但附有买家的姓名,另外还计算物业中的房间数量,即上述查询。看来我需要一个子查询,但我不知道如何完成这个,并且将不胜感激

    抱歉,我对SQL很新。

1 个答案:

答案 0 :(得分:0)

如果我理解你的目标:)

您必须将查询作为中间表property_interest的主表编写,以便您可以将其与其他父表连接,如下所示:

SELECT bpc.buying_customer_first_name || bpc.buying_customer_surname,
(SELECT COUNT(*)
FROM room r
JOIN property p
    ON r.property_id = p.property_id
WHERE p.property_id = pi.property_id)
FROM property_interest pi
JOIN buying_potential_custoter bpc
    ON pi.buying_customer_id = bpc.buying_customer_id