Показать сообщение отдельно
Старый 22.11.2019, 19:51   #1  
Ion is offline
Ion
Участник
 
332 / 16 (1) ++
Регистрация: 19.12.2012
Aggregate Fetch XML Calculation
Всем привет.

Не могу понять почему aggregate возвращает не то что я ожидаю.

Суть: есть quote and sales product, я хочу используя aggregate сгруппировать sales total по quote id ну и записать кое-куда.

Код:
        public SalesTotals GetSalesTotals(Guid quoteId)
        {
                 string estimatedvalue_avg2 = @" 
                <fetch distinct='true' mapping='logical' aggregate='true'> 
                   <entity name='productline'> 
                      <attribute name='quoteid'  groupby='true' alias='quoteid'/> 
                      <attribute name = 'tax' alias = 'tax' aggregate = 'sum'/>
                      <attribute name='total' alias='total_sum' aggregate='sum'/> 
                            <filter type='and'>
                              <condition attribute='quoteid' operator='eq' uitype='quote' value='{0}' />
                            </filter>
                   </entity> 
                </fetch>";

            var result = Service.RetrieveMultiple(new FetchExpression(string.Format(estimatedvalue_avg2, quoteId))).Entities.FirstOrDefault();
            return new SalesTotals()
            {
                total = ((Money)((AliasedValue)result?["total_sum"])?.Value)?.Value ?? 0.0M,
                tax= ((Money)((AliasedValue)result?["tax"])?.Value)?.Value ?? 0.0M,
            };
        }
Sales product 2 записи в тотал в каждой по 100, сумма должна быть 200 и мне возвращает 152.22

Последний раз редактировалось Ion; 22.11.2019 в 19:54.