Итак, здесь происходит несколько вещей.Проблема не столько в том, что ваш запрос недостижим с FetchXML, сколько в том, что он не достижим в любом языке запросов, включая SQL.SQL вашего FetchXML выше выглядит следующим образом:
SELECT ownerID, createdon, customerid
FROM dbo.Opportunity
GROUP BY ownerID
Если вы попытаетесь запустить этот SQL для своей базы данных, вы получите стандартную ошибку Column 'dbo.Opportunity.CreatedOn' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
, которая является именно тем, что пытается сделать ваше исключениесказать тебе.Чтобы решить эту проблему, вам также необходимо сгруппировать данные по каждому неагрегированному столбцу (в данном случае createdon
и customerid
), включив атрибут groupby='true'
в каждый соответствующий элемент attribute
.
Во-вторыхгруппирование по дате создания каждой возможности является более или менее бесполезной группировкой, поскольку возможности обычно создаются в разное время, поэтому такая группировка просто возвращает всю таблицу.Microsoft справедливо признает это, поэтому, если вы исправите проблему с группировкой, описанную выше, вы столкнетесь с другим исключением, связанным со столбцом datetime.Если вы продолжите читать статью , которой я ранее поделился , есть пример, в котором рассматриваются различные способы группировки по разным интервалам дат (год, месяц, квартал и т. Д.) С помощью атрибута dategrouping
.
Но у меня возникает ощущение, что даже после устранения общих проблем с группировкой, а затем и проблемы с категорированием, набор результатов может быть не таким, как вы хотите.Если это не так, это может помочь опубликовать пример набора результатов, который вы ожидаете увидеть, а затем указать, имеет ли FetchXML возможность доставить вам этот набор.