У меня есть таблица, содержащая идентификационные данные (UnitID), почтовый индекс, количество спален и оценку имущества. Мне нужно выяснить, какие свойства с одинаковым почтовым индексом и одним и тем же количеством спален имеют разные оценки свойств.
Образец набора данных
SELECT 'B' AS GroupID
,U.UNITID AS [Unit ID]
,A.postcode AS Postcode
,U.NOOFBEDROOMS AS [No Of Bedrooms]
,U.PROPERTYVALUE1999 AS [Property Valuation]
,A.postcode + ' | ' + CAST(U.NOOFBEDROOMS AS varchar(3)) AS CheckID
INTO #A_PropertyValue1999
FROM landingax.hpmunitstaging U
LEFT JOIN LandingCRM.hsl_asset A ON U.UNITID = A.reference
WHERE U.CONTROLSTATUSID = 'Active'
AND U.PROPERTYVALUE1999 IS NOT NULL
Затем я запустил этот запрос, чтобы проверить различия (объединяя почтовый индекс и номер спальни в качестве идентификатора для объединения двух):
SELECT DISTINCT 'A' AS GroupID
,U.UNITID AS [UnitID A]
,A.postcode AS Postcode
,U.NOOFBEDROOMS AS [No Of Bedrooms]
,U.PROPERTYVALUE1999 AS [Property A Valuation]
,A.postcode + ' | ' + CAST(U.NOOFBEDROOMS AS varchar(3)) AS CheckID
,#A_PropertyValue1999.[Unit ID] AS [UnitID B]
,#A_PropertyValue1999.[Property Valuation] AS [Property B Valuation]
FROM landingax.hpmunitstaging U
LEFT JOIN LandingCRM.asset A ON U.UNITID = A.hsl_reference
INNER JOIN #A_PropertyValue1999 ON A.postcode + ' | ' + CAST(U.NOOFBEDROOMS AS varchar(3)) = #A_PropertyValue1999.CheckID
Проблема в том, что я получаю несколько строк для одного и того же исключения, потому что когда свойство A и свойство B различаются, возвращается свойство B и свойство A в качестве исключения - следующая таблица может объяснить проблему более четко:
образец результаты, показывающие дубликаты в наборе результатов
Пример того, чего я пытаюсь избежать - строка 1 дублируется в строке 2, только UnitID переключается вокруг
Извинения Я не знаю, как поместить таблицы данных в более читаемый формат:
Пример данных
Unit ID Postcode No Of Bedrooms PROPERTYVALUE1999 CheckID
U034 ZZ1 1ZZ 1 85000 ZZ1 1ZZ | 1
U037 ZZ1 1ZZ 1 85000 ZZ1 1ZZ | 1
U036 ZZ1 1ZZ 1 65000 ZZ1 1ZZ | 1
U995 ZZ1 1ZZ 2 85000 ZZ1 1ZZ | 2
U032 ZZ1 1ZZ 1 65000 ZZ1 1ZZ | 1
U031 ZZ1 1ZZ 2 45000 ZZ1 1ZZ | 2
U033 ZZ1 1ZZ 1 65000 ZZ1 1ZZ | 1
U035 ZZ1 1ZZ 1 65000 ZZ1 1ZZ | 1
Текущие результаты f rom мой запрос:
UnitID A Postcode No Of Bedrooms Property A Valuation CheckID UnitID B Property B Valuation
U031 ZZ1 1ZZ 2 45000 ZZ1 1ZZ | 2 U995 85000
U032 ZZ1 1ZZ 1 65000 ZZ1 1ZZ | 1 U034 85000
U032 ZZ1 1ZZ 1 65000 ZZ1 1ZZ | 1 U037 85000
U033 ZZ1 1ZZ 1 65000 ZZ1 1ZZ | 1 U034 85000
U033 ZZ1 1ZZ 1 65000 ZZ1 1ZZ | 1 U037 85000
U034 ZZ1 1ZZ 1 85000 ZZ1 1ZZ | 1 U032 65000
U034 ZZ1 1ZZ 1 85000 ZZ1 1ZZ | 1 U033 65000
U034 ZZ1 1ZZ 1 85000 ZZ1 1ZZ | 1 U035 65000
U034 ZZ1 1ZZ 1 85000 ZZ1 1ZZ | 1 U036 65000
U035 ZZ1 1ZZ 1 65000 ZZ1 1ZZ | 1 U034 85000
U035 ZZ1 1ZZ 1 65000 ZZ1 1ZZ | 1 U037 85000
U036 ZZ1 1ZZ 1 65000 ZZ1 1ZZ | 1 U034 85000
U036 ZZ1 1ZZ 1 65000 ZZ1 1ZZ | 1 U037 85000
U037 ZZ1 1ZZ 1 85000 ZZ1 1ZZ | 1 U032 65000
U037 ZZ1 1ZZ 1 85000 ZZ1 1ZZ | 1 U033 65000
U037 ZZ1 1ZZ 1 85000 ZZ1 1ZZ | 1 U035 65000
U037 ZZ1 1ZZ 1 85000 ZZ1 1ZZ | 1 U036 65000
U995 ZZ1 1ZZ 2 85000 ZZ1 1ZZ | 2 U031 45000
Пример того, что я пытаюсь избежать - 2 строки для одного и того же исключения, единственная разница в том, что Единица A становится Единицей B и наоборот
UnitID A Postcode No Of Bedrooms Property A Valuation CheckID UnitID B Property B Valuation
U031 ZZ1 1ZZ 2 45000 ZZ1 1ZZ | 2 U995 85000
U995 ZZ1 1ZZ 2 85000 ZZ1 1ZZ | 2 U031 45000