How can I groupby an attribute of another entity in xml charts?
I would like a chart of number appointments (y-axis) by CRM user (x-axis), with appointments grouped by accountcategorycode of account.
I am using a view that only displays appointments regarding accounts.
I have a chart to group appointments by account, which works well:
<visualization>
<visualizationid>{8CC67476-302B-E211-86B2-005056BD0001}</visualizationid>
<name>Appointment by User Stacked by Rating</name>
<primaryentitytypecode>appointment</primaryentitytypecode>
<datadescription>
<datadefinition>
<fetchcollection>
<fetch mapping="logical" aggregate="true">
<entity name="appointment">
<attribute groupby="true" alias="ownerid" name="ownerid" />
<attribute groupby="true" alias="gp" name="regardingobjectid" />
<attribute alias="accountref" name="regardingobjectid" aggregate="count" />
<link-entity name="account" from="accountid" to="regardingobjectid" alias="aa">
<attribute name="accountcategorycode" alias="code" aggregate="count" />
</link-entity>
<filter type="and">
<condition attribute="activitytypecode" operator="eq" value="4201" />
</filter>
</entity>
</fetch>
</fetchcollection>
<categorycollection>
<category alias="ownerid">
<measurecollection>
<measure alias="accountref" />
</measurecollection>
</category>
</categorycollection>
</datadefinition>
</datadescription>
<presentationdescription>
<Chart Palette="None" PaletteCustomColors="55,118,193; 197,56,52; 149,189,66; 117,82,160; 49,171,204; 255,136,35; 97,142,206; 209,98,96; 168,203,104; 142,116,178; 93,186,215; 255,155,83">
<Series>
<Series ChartType="StackedColumn" IsValueShownAsLabel="False" Font="{0}, 9.5px" LabelForeColor="59, 59, 59" CustomProperties="PointWidth=0.75, MaxPixelPointWidth=40"></Series>
</Series>
<ChartAreas>
<ChartArea BorderColor="White" BorderDashStyle="Solid">
<AxisY LabelAutoFitMinFontSize="8" TitleForeColor="59, 59, 59" TitleFont="{0}, 10.5px" LineColor="165, 172, 181" IntervalAutoMode="VariableCount">
<MajorGrid LineColor="239, 242, 246" />
<MajorTickMark LineColor="165, 172, 181" />
<LabelStyle Font="{0}, 10.5px" ForeColor="59, 59, 59" />
</AxisY>
<AxisX LabelAutoFitMinFontSize="8" TitleForeColor="59, 59, 59" TitleFont="{0}, 10.5px" LineColor="165, 172, 181" IntervalAutoMode="VariableCount">
<MajorTickMark LineColor="165, 172, 181" />
<MajorGrid LineColor="Transparent" />
<LabelStyle Font="{0}, 10.5px" ForeColor="59, 59, 59" />
</AxisX>
</ChartArea>
</ChartAreas>
<Titles>
<Title Alignment="TopLeft" DockingOffset="-3" Font="{0}, 13px" ForeColor="59, 59, 59"></Title>
</Titles>
</Chart>
</presentationdescription>
<isdefault>false</isdefault>
</visualization></visualization>
Have you tried exporting the chart (as you seem to have already done) and modify the fetchXML with a linked group by? I often reference the examples in this fetchXML helper page on aggregation syntax: http://msdn.microsoft.com/en-us/library/gg309565.aspx#groupby_linked
Notice the example the link jumps to is groupby_linked and works as you’d expect. (move the groupby down into the field of your linked entity)
FetchXML may not allow multiple group-by’s across entities, give it a try and you’ll find out quite quickly if that is the case.