Advertisement
Guest User

Untitled

a guest
Jul 10th, 2013
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 5.23 KB | None | 0 0
  1. WITH Clusters AS
  2.                       (
  3.                         SELECT
  4.                           T1.*,
  5.                           T2.CityId
  6.                         FROM
  7.                           map.Cluster T1
  8.                         INNER JOIN
  9.                           map.ClusterDist T2 ON
  10.                             T2.Id = T1.DistId
  11.                         WHERE
  12.                           T2.CityId IN (@cityIds0,@cityIds1,@cityIds2,@cityIds3,@cityIds4,@cityIds5,@cityIds6,@cityIds7)
  13.                           AND
  14.                           T2.Zoom = @zoom
  15.                       ), Props AS
  16.                           (
  17.                         SELECT
  18.                           T2.PropertyId,
  19.                                 T2.CenterDistance,
  20.                                 T4.Location,
  21.                           T1.Id AS ClusterId,
  22.                           T3.AreaResidential,
  23.                           T3.PaymentCash AS Price,
  24.                           T3.PhotoPrefix,
  25.                           T3.LogoPrefix,
  26.                           T3.Street,
  27.                           T3.HouseNumber,
  28.                           T3.ZipCode,
  29.                           T3.[Type]
  30.                         FROM
  31.                           Clusters T1
  32.                         INNER JOIN
  33.                           owner.ClusterPoint T2 ON
  34.                             T2.ClusterId = T1.Id
  35.                         INNER JOIN
  36.                           owner.Property T3 ON
  37.                             T3.Id = T2.PropertyId
  38.                               INNER JOIN
  39.                                 area.[Address] T4 ON
  40.                                     T4.Id = T3.AddressId
  41.                         WHERE
  42.                           T3.SearchType IN (@searchTypes0,@searchTypes1,@searchTypes2,@searchTypes3,@searchTypes4,@searchTypes5)
  43.                           AND
  44.                           T3.PaymentCash BETWEEN ISNULL(@paymentCashMin, T3.PaymentCash) AND ISNULL(@paymentCashMax, T3.PaymentCash)
  45.                           AND
  46.                           T3.AreaResidential BETWEEN ISNULL(@areaResidentialMin, T3.AreaResidential) AND ISNULL(@areaResidentialMax, T3.AreaResidential)
  47.                           AND
  48.                           T3.AreaParcel BETWEEN ISNULL(@areaParcelMin, T3.AreaParcel) AND ISNULL(@areaParcelMax, T3.AreaParcel)
  49.                           AND
  50.                           T3.AreaBasement BETWEEN ISNULL(@areaBasementMin, T3.AreaBasement) AND ISNULL(@areaBasementMax, T3.AreaBasement)
  51.                           AND
  52.                           T3.Rooms BETWEEN ISNULL(@roomsMin, T3.Rooms) AND ISNULL(@roomsMax, T3.Rooms)
  53.                           AND
  54.                           T3.YearBuilt BETWEEN ISNULL(@yearBuiltMin, T3.YearBuilt) AND ISNULL(@yearBuiltMax, T3.YearBuilt)
  55.                           AND
  56.                           T3.Floors BETWEEN ISNULL(@floorsMin, T3.Floors) AND ISNULL(@floorsMax, T3.Floors)
  57.                           AND
  58.                           T3.Floor BETWEEN ISNULL(@floorMin, T3.Floor) AND ISNULL(@floorMax, T3.Floor)
  59.                           AND
  60.                           T3.Announced BETWEEN ISNULL(@announcedMin, T3.Announced) AND ISNULL(@announcedMax, T3.Announced)
  61.                           AND
  62.                           (
  63.                             @openHouseMin IS NULL AND @openHouseMax IS NULL
  64.                             OR
  65.                             (
  66.                               T3.OpenHouseDate BETWEEN ISNULL(@openHouseMin, T3.OpenHouseDate) AND ISNULL(@openHouseMax, T3.OpenHouseDate)
  67.                               AND
  68.                               DATEADD(mi, ISNULL(T3.OpenHouseDuration, 0), T3.OpenHouseDate) >= GETDATE()
  69.                             )
  70.                           )
  71.                           AND
  72.                           (
  73.                             @textMatch IS NULL
  74.                             OR
  75.                             T3.[Description] LIKE @textMatch
  76.                           )
  77.                           ), PropsAgg AS
  78.                       (
  79.                         SELECT
  80.                           COUNT(*) AS [Count],
  81.                           T1.ClusterId
  82.                               FROM
  83.                                 Props T1
  84.                         GROUP BY
  85.                           T1.ClusterId
  86.                       ), Centers AS
  87.                       (
  88.                         SELECT
  89.                           T1.Id AS ClusterId,
  90.                           T2.Location AS Center,
  91.                           T2.PropertyId,
  92.                           T2.Street,
  93.                           T2.HouseNumber,
  94.                           T2.AreaResidential,
  95.                           T2.Price,
  96.                           T2.LogoPrefix,
  97.                           T2.PhotoPrefix,
  98.                           T2.ZipCode,
  99.                           T2.[Type],
  100.                           T3.IsFavorite,
  101.                           T3.IsVisited
  102.                         FROM
  103.                           Clusters T1
  104.                         CROSS APPLY
  105.                           ( SELECT TOP 1 S1.* FROM Props S1 WHERE S1.ClusterId = T1.Id ORDER BY S1.CenterDistance ASC ) T2
  106.                         OUTER APPLY
  107.                               ( SELECT IsFavorite, IsVisited FROM owner.Visit S2 WHERE S2.PropertyId = T2.PropertyId AND S2.CookieId = @cookieId ) T3
  108.                       )
  109.                      
  110.                           SELECT
  111.                         T1.Id,
  112.                         T3.Center,
  113.                         T1.Area,
  114.                         NULL AS Name,
  115.                         T1.CityId,
  116.                         T1.Area AS CityArea,
  117.                         T2.[Count],
  118.                         T3.PropertyId,
  119.                         T3.Street,
  120.                         T3.HouseNumber,
  121.                         T3.AreaResidential,
  122.                         T3.Price,
  123.                         T3.PhotoPrefix,
  124.                         T3.LogoPrefix,
  125.                         T3.ZipCode,
  126.                         T3.[Type],
  127.                         T1.AddressId,
  128.                         T3.IsFavorite,
  129.                         T3.IsVisited
  130.                       FROM
  131.                         Clusters T1
  132.                       INNER JOIN
  133.                         PropsAgg T2 ON
  134.                           T2.ClusterId = T1.Id
  135.                       INNER JOIN
  136.                         Centers T3 ON
  137.                           T3.ClusterId = T1.Id
  138.                       WHERE
  139.                         @bounds IS NULL
  140.                         OR
  141.                         T1.Area.STIntersects(@bounds) = 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement