Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- WITH Clusters AS
- (
- SELECT
- T1.*,
- T2.CityId
- FROM
- map.Cluster T1
- INNER JOIN
- map.ClusterDist T2 ON
- T2.Id = T1.DistId
- WHERE
- T2.CityId IN (@cityIds0,@cityIds1,@cityIds2,@cityIds3,@cityIds4,@cityIds5,@cityIds6,@cityIds7)
- AND
- T2.Zoom = @zoom
- ), Props AS
- (
- SELECT
- T2.PropertyId,
- T2.CenterDistance,
- T4.Location,
- T1.Id AS ClusterId,
- T3.AreaResidential,
- T3.PaymentCash AS Price,
- T3.PhotoPrefix,
- T3.LogoPrefix,
- T3.Street,
- T3.HouseNumber,
- T3.ZipCode,
- T3.[Type]
- FROM
- Clusters T1
- INNER JOIN
- owner.ClusterPoint T2 ON
- T2.ClusterId = T1.Id
- INNER JOIN
- owner.Property T3 ON
- T3.Id = T2.PropertyId
- INNER JOIN
- area.[Address] T4 ON
- T4.Id = T3.AddressId
- WHERE
- T3.SearchType IN (@searchTypes0,@searchTypes1,@searchTypes2,@searchTypes3,@searchTypes4,@searchTypes5)
- AND
- T3.PaymentCash BETWEEN ISNULL(@paymentCashMin, T3.PaymentCash) AND ISNULL(@paymentCashMax, T3.PaymentCash)
- AND
- T3.AreaResidential BETWEEN ISNULL(@areaResidentialMin, T3.AreaResidential) AND ISNULL(@areaResidentialMax, T3.AreaResidential)
- AND
- T3.AreaParcel BETWEEN ISNULL(@areaParcelMin, T3.AreaParcel) AND ISNULL(@areaParcelMax, T3.AreaParcel)
- AND
- T3.AreaBasement BETWEEN ISNULL(@areaBasementMin, T3.AreaBasement) AND ISNULL(@areaBasementMax, T3.AreaBasement)
- AND
- T3.Rooms BETWEEN ISNULL(@roomsMin, T3.Rooms) AND ISNULL(@roomsMax, T3.Rooms)
- AND
- T3.YearBuilt BETWEEN ISNULL(@yearBuiltMin, T3.YearBuilt) AND ISNULL(@yearBuiltMax, T3.YearBuilt)
- AND
- T3.Floors BETWEEN ISNULL(@floorsMin, T3.Floors) AND ISNULL(@floorsMax, T3.Floors)
- AND
- T3.Floor BETWEEN ISNULL(@floorMin, T3.Floor) AND ISNULL(@floorMax, T3.Floor)
- AND
- T3.Announced BETWEEN ISNULL(@announcedMin, T3.Announced) AND ISNULL(@announcedMax, T3.Announced)
- AND
- (
- @openHouseMin IS NULL AND @openHouseMax IS NULL
- OR
- (
- T3.OpenHouseDate BETWEEN ISNULL(@openHouseMin, T3.OpenHouseDate) AND ISNULL(@openHouseMax, T3.OpenHouseDate)
- AND
- DATEADD(mi, ISNULL(T3.OpenHouseDuration, 0), T3.OpenHouseDate) >= GETDATE()
- )
- )
- AND
- (
- @textMatch IS NULL
- OR
- T3.[Description] LIKE @textMatch
- )
- ), PropsAgg AS
- (
- SELECT
- COUNT(*) AS [Count],
- T1.ClusterId
- FROM
- Props T1
- GROUP BY
- T1.ClusterId
- ), Centers AS
- (
- SELECT
- T1.Id AS ClusterId,
- T2.Location AS Center,
- T2.PropertyId,
- T2.Street,
- T2.HouseNumber,
- T2.AreaResidential,
- T2.Price,
- T2.LogoPrefix,
- T2.PhotoPrefix,
- T2.ZipCode,
- T2.[Type],
- T3.IsFavorite,
- T3.IsVisited
- FROM
- Clusters T1
- CROSS APPLY
- ( SELECT TOP 1 S1.* FROM Props S1 WHERE S1.ClusterId = T1.Id ORDER BY S1.CenterDistance ASC ) T2
- OUTER APPLY
- ( SELECT IsFavorite, IsVisited FROM owner.Visit S2 WHERE S2.PropertyId = T2.PropertyId AND S2.CookieId = @cookieId ) T3
- )
- SELECT
- T1.Id,
- T3.Center,
- T1.Area,
- NULL AS Name,
- T1.CityId,
- T1.Area AS CityArea,
- T2.[Count],
- T3.PropertyId,
- T3.Street,
- T3.HouseNumber,
- T3.AreaResidential,
- T3.Price,
- T3.PhotoPrefix,
- T3.LogoPrefix,
- T3.ZipCode,
- T3.[Type],
- T1.AddressId,
- T3.IsFavorite,
- T3.IsVisited
- FROM
- Clusters T1
- INNER JOIN
- PropsAgg T2 ON
- T2.ClusterId = T1.Id
- INNER JOIN
- Centers T3 ON
- T3.ClusterId = T1.Id
- WHERE
- @bounds IS NULL
- OR
- T1.Area.STIntersects(@bounds) = 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement