Advertisement
Guest User

Untitled

a guest
Nov 13th, 2019
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 4.47 KB | None | 0 0
  1. SELECT d1.id,
  2.        `bt`.`name`,
  3.        `r`.`alias`        AS `rooms`,
  4.        `d1`.`deals_bank_id`,
  5.        `ot`.`alias`       AS `object_type`,
  6.        `d1`.`reg_date`,
  7.        `pbo`.`square`,
  8.        `pdb`.`deals_buyer_type_id`,
  9.        `d1`.`agreement_date`,
  10.        `con`.`concession` AS `concession`,
  11.        `d1`.`deals_concession_id`,
  12.        `d1`.`deals_seller_id`,
  13.        `d1`.`wholesale`,
  14.        `hc`.`name`        AS `hc_name`,
  15.        `loc`.`address`    AS `loc_address`
  16. FROM (
  17.     -- основной запрос по сделкам
  18.          SELECT d.id,
  19.                 `d`.`deals_object_id`,
  20.                 `d`.`agreement_date`,
  21.                 `d`.`reg_date`,
  22.                 `d`.`document_date`,
  23.                 `d`.`registration_number`,
  24.                 `d`.`mortgage_term`,
  25.                 `d`.`mortgage_number`,
  26.                 `d`.`deals_concession_id`,
  27.                 `d`.`deals_buyer_id`,
  28.                 `d`.`deals_bank_id`,
  29.                 `d`.`deals_seller_id`,
  30.                 `d`.`wholesale`,
  31.                 `d`.`price_square_r`,
  32.                 `d`.`method_ppsmr_id`,
  33.                 `d`.`compensation_amount`,
  34.                 `d`.`ddu_amount`,
  35.                 pbo.id as pbo_id
  36.          from parser_deals d
  37.                   inner join parser_deals_objects pdo on d.deals_object_id = pdo.id
  38.                   inner join parser_building_objects pbo on pdo.building_object_id = pbo.id
  39.                   inner join parser_building pb on pbo.building_id = pb.id
  40.          -- фильтрация по дате и проекту
  41.          where pb.housing_complex_id = 75
  42.            and d.agreement_date <= '2019-10-21'
  43.          -- группировка по ПД и дате
  44.          GROUP BY pbo.id, d.agreement_date
  45.      ) `d1`
  46.  
  47.     -- JOIN который фильтрует первый запрос
  48.     -- Берём тут максимальную дату сделок, группированых по ПД и отфильтрованных по проекту и дате
  49.          INNER JOIN
  50.      (
  51.          -- MAX(agreement_date)
  52.          SELECT d.id, MAX(d.agreement_date) as agr_date, d.deals_object_id, pbo.id as pbo_id
  53.          from parser_deals d
  54.                   inner join parser_deals_objects pdo on d.deals_object_id = pdo.id
  55.                   inner join parser_building_objects pbo on pdo.building_object_id = pbo.id
  56.                   inner join parser_building pb on pbo.building_id = pb.id
  57.          where pb.housing_complex_id = 75
  58.            and d.agreement_date <= '2019-10-21'
  59.          GROUP BY pbo.id
  60.      ) `d2`
  61.          -- Сама фильтрация
  62.          ON d1.agreement_date = d2.agr_date AND d1.pbo_id = d2.pbo_id
  63.  
  64.         -- JOINы для вывода данных
  65.          LEFT JOIN parser_deals_objects pdo
  66.                    ON d1.deals_object_id = pdo.id
  67.          LEFT JOIN parser_building_objects pbo
  68.                    on pdo.building_object_id = pbo.id
  69.          LEFT JOIN `parser_deals_concession` `con`
  70.                    ON con.id = d1.deals_concession_id
  71.          LEFT JOIN `parser_object_type` `ot`
  72.                    ON ot.id = pbo.object_type_id
  73.          LEFT JOIN `parser_deals_buyers` `pdb`
  74.                    ON pdb.id = d1.deals_buyer_id
  75.          LEFT JOIN `parser_deals_buyer_type` `bt`
  76.                    ON bt.id = pdb.deals_buyer_type_id
  77.          LEFT JOIN `parser_rooms` `r`
  78.                    ON r.id = pbo.custom_rooms_id
  79.          LEFT JOIN `parser_deals_banks` `bank`
  80.                    ON bank.id = d1.deals_bank_id
  81.          LEFT JOIN `parser_building` `b`
  82.                    ON b.id = pbo.building_id
  83.          LEFT JOIN `parser_housing_complex` `hc`
  84.                    ON hc.id = b.housing_complex_id
  85.          LEFT JOIN `core_location` `loc`
  86.                    ON loc.id = b.location_id
  87.          LEFT JOIN `parser_region` `region`
  88.                    ON region.id = b.region_id
  89.          LEFT JOIN `parser_objectclass` `class`
  90.                    ON class.id = b.objectclass_id
  91.          LEFT JOIN `parser_developer` `dev`
  92.                    ON dev.id = b.developer_id
  93.          LEFT JOIN `parser_builder` `br`
  94.                    ON br.id = b.builders_id
  95.          LEFT JOIN `parser_deals_seller` `ds`
  96.                    ON ds.id = d1.deals_seller_id
  97.          LEFT JOIN `parser_method_ppsmr` `ppsmr`
  98.                    ON ppsmr.id = d1.method_ppsmr_id
  99. -- ещё фильтры
  100. where `ot`.`alias` IN ('kvartira', 'apartamenty')
  101. AND NOT (`d1`.`deals_concession_id` = '2' AND `d1`.`deals_seller_id` = '2')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement