Столкнулся тут с интересным поведением группировки по полю типа GUID в 4.0 и 2009 RU5.
Имеем тестовый джоб
X++:
static void Job1(Args _args)
{
Table1 t;
;
t.StringField = 'aa';
t.GuidField = newguid();
t.RealField = 2;
t.insert();
t.StringField = 'aa';
t.GuidField = newguid();
t.RealField = 2;
t.insert();
t.StringField = 'bb';
t.GuidField = newguid();
t.RealField = 2;
t.insert();
while select sum(RealField) from t
group by StringField, GuidField
{
info(strfmt("%1 %2 %3", t.StringField, t.GuidField, t.RealField));
}
}
В DAX 2009 RU5 все отрабатывает достаточно ожидаемо:
А вот в DAX 4.0 SP2 нас поджидает сюрприз:
Результат одинаковый - независимо от того - временная таблица или постоянная (т.е. есть она в БД или нет).
В обоих случаях в качестве СУБД использовался как SQL Server 2005, так и SQL Server 2008 R2.
Собственно - вывод - будьте аккуратнее