AXForum  
Go Back   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Forgotten Your Password?
Register Forum Rules FAQ Members List Today's Posts Search

 
 
Thread Tools Search this Thread Display Modes
Prev Previous Post   Next Post Next
Old 16.08.2011, 18:52   #1  
Maximin is offline
Maximin
NavAx
NavAx Club
 
415 / 361 (13) ++++++
Join Date: 09.10.2002
Location: Москва
Агрегирование и group by по одинаковым полям
Сегодня наступил на экзотические фигурные грабли.
AX2009 SP1 RU7

Вкратце:
Если сделать запрос по числовому полю вида select sum(<какое-то поле>) group by <какое-то поле>, то в результате, при наличии в таблице записей с одинаковым значением в <какое-то поле> получим отнюдь не одну запись с суммированным значением в <какое-то поле>, как может подумать знающий SQL (и не n - по числу строк с совпадающим значением, записей с одинаковым значением в <какое-то поле>, как может показаться неискушенному уму) . Но получим ОДНУ строку с нессуммированным значением в <какое-то поле> .

Усугубим.
Есть таблица, в которой есть индекс, в который входит <какое-то поле>. Указываем этот индекс в качестве используемого в запросе, и делаем агрегирование по <какое-то поле>. Получаем автоматом от Аксапты "подарок" в виде select агрег_ф-ция<какое-то поле>, <список полей из индекса> group by <список полей из индекса>
, что приводит к автоматическому срабатыванию вышеописанных граблей.
Поймал на РФОшном отчете, и существующем индексе на LedgerTrans с включением поля AmountMST (сильно ускоряет расчет фин. отчетности).

Причина: при таком запросе SQL сервер возвращает для поля <какое-то поле> два значения - собственно, результат агрегирующей ф-ции как БЕЗЫМЯННЫЙ СТОЛБЕЦ, вместо значения в самом поле, как ожидает Аксапта), а в самом поле, ессно, фигурирует то значение, по которому была сгруппированы записи.

Voila! Резная ручка стремительно приближается ко лбу.
__________________
Жизнь прекрасна! Если, конечно, правильно подобрать антидепрессанты...

Last edited by Maximin; 16.08.2011 at 18:54.
This post has been rated by: mazzy (2), S.Kuskov (1).
Tags
ax2009, bug, sql, группировка, запрос (query), ошибка, ax4.0

 

Similar Threads
Thread Thread Starter Forum Replies Last Post
axinthefield: Optimizing AX Batch Performance - Batch Group Configuration Blog bot DAX Blogs 0 01.04.2011 13:11
dynamicsaxtraining: Item setup: Inventory dimension group Blog bot DAX Blogs 1 05.10.2010 15:35
Shekhar: Dynamics AX : ‘Group total’ account length and account type in GL Blog bot DAX Blogs 0 31.05.2010 22:05
dynamicsaxtraining: Item setup: Item group Blog bot DAX Blogs 0 12.11.2009 17:05
emeadaxsupport: Group policy setting "System Objects: Default owner for objects created by members of the administrators group" is missing on Windows Server 2008 Blog bot DAX Blogs 2 28.08.2009 02:14

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Рейтинг@Mail.ru
All times are GMT +3. The time now is 15:40.
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Contacts E-mail, Advertising.