У меня есть набор результатов во временной таблице, которая является результатом некоторых сложных объединений, и мне нужно знать, как лучше всего фильтровать строки с одинаковым идентификатором AccountId / HealthPlanId (показано ниже).
select * from #HealthPlans
И содержимое выглядит следующим образом:
AccountId MemberId HealthPlanId RankNo
101273 47570 5215 1
101273 47570 2187 2
101273 55551 5179 3
160026 48102 5620 1
160026 48446 5620 2
В этом сценарии RankNo, который не является значением, вычисленным в моем исходном запросе, представляет собой столбец БД, который ранжирует member / healthPlan, где имеется более одного члена. / HealthPlan комбинация для данного аккаунта.
В случае аккаунта 101273 у меня есть один и тот же участник (47570) с 3 отдельными планами медицинского обслуживания (5215, 2187, 5179). Хорошо. Я хочу ранжировать планы медицинского страхования.
Однако для accountId 160026 у меня дважды указан HealthPlanId: 5620, но с разными идентификаторами участника. Мне нужно сохранить один из этих идентификаторов участников и отбросить другой (не важно, какой я храню, поскольку меня интересует только ранжирование HealthPlanId).
По сути, в учетной записи должна быть только строка для каждый уникальный план медицинского обслуживания. Тем не менее, дубликаты memberId в порядке и должны оцениваться, пока HealthPlanId отличается.
Другими словами, выберите строки из #HealthPlans так, чтобы следующий набор результатов был:
AccountId MemberId HealthPlanId RankNo
101273 47570 5215 1
101273 47570 2187 2
101273 55551 5179 3
160026 48102 5620 1
Нет необходимости показывать оригинальные объединения, потому что это в основном упрощение моей первоначальной проблемы.
Спасибо,
Шон