У меня есть таблица, содержащая около семи столбцов, включая поле, содержащее XML.
Существует несколько идентификаторов клиентов, каждый из которых может иметь более одного идентификатора продукта.
Для каждой уникальной комбинации идентификатора клиента и идентификатора продукта существует более одного идентификатора таблицы (называемого edw_policy_data_id).
Мне нужно получить XML, соответствующий максимальному значению edw_policy_data_id для каждой уникальной комбинации идентификатора клиента и идентификатора экземпляра продукта.
Наконец, мне нужно ограничить внутренний запрос диапазоном дат.
Мой текущий запрос выглядит так;Я возвращаю больше столбцов, чем мне нужно, и упорядочиваю их для отладки запроса.Я не смог ничего сделать с max ().
select edw_policy_data_id, e.customer_id, e.product_instance_id, policy_data_xml
FROM [DB].[dbo].[EDW_POLICY_DATA] e
inner join (SELECT distinct customer_id, product_instance_id
FROM [DB].[dbo].[EDW_POLICY_DATA]
where created_date > '12/1/2011'
and created_date < '12/27/2011 17:16:00') d
on e.customer_id = d.customer_id and e.product_instance_id = d.product_instance_id
order by customer_id, product_instance_id, edw_policy_data_id
Результаты выглядят примерно так:
edw_policy_data_id e.customer_id e.product_instance_id policy_data_xml
1 100 200 xml
2 100 200 xml
3 100 201 xml
4 101 203 xml
5 101 203 xml
Мне нужны результаты, чтобы выглядеть такотладка - обратите внимание, что присутствует только максимальный edw_policy_data_id для каждой уникальной комбинации customer_ID / product_instance_id.
edw_policy_data_id e.customer_id e.product_instance_id policy_data_xml
2 100 200 xml
3 100 201 xml
5 101 203 xml
В конечном счете, все, что мне нужно, это XML для каждого комбинированного max (edw_policy_id) / customer_id / product_instance_ID.
Я посмотрел ответы на на этот вопрос : без радости.