|
![]() |
#1 |
Боец
|
Цитата:
Сообщение от ZVV
![]() Вы имеете ввиду, что результаты никак не сгруппировались вобще и в остальных колонках тоже есть данные? Ну мне кажется это сразу было очевидно, что Аксапта "забыла" сделать груп_бай вообще.
![]() ![]() По сути... Проверил на DAX2009 SP1 - результат абсолютно тот же. Реальный баг. Видимо разработчики такой вырожденный случай тупо забыли/не подумали закодить. ![]() Почему "вырожденный"? Ну потому что вы по сути хотите выяснить есть ли у вас хоть одна строка со значением "1". С точки зрения производительности и логики я думаю лучше было бы написать этот запрос примерно так: X++: while select firstFast firstOnly Field1 from tmpTable where tmpTable.Field1 == '1' Так работает... ![]() X++: while select sum (amount) from tmpTable group by department where tmpTable.department like 'OUT*' { info(strFmt("%1 - %2", tmpTable.department, tmpTable.amount)); } |
|
![]() |
#2 |
Участник
|
или скажем узнать кол-во уволенных сотрудников в связи с кризисом по отделам, имеющим признак ="CLOSED"
![]()
__________________
The Variable men power. Последний раз редактировалось Varmen; 13.10.2009 в 01:17. |
|
![]() |
#3 |
Участник
|
Цитата:
Цитата:
X++: while select maxof(Field1), count(RecId) from t group by Field1 where t.Field1 == '1' { info(strfmt("fisrt query %1 %2",t.Field1, t.RecId)); } Последний раз редактировалось S.Kuskov; 13.10.2009 в 08:59. Причина: поспешил с выводами |
|
![]() |
#4 |
Участник
|
Цитата:
А по поводу вырожденности случая - не всегда удобно обробатывать его отдельно. Например, я часто использую в условии запроса такую конструкцию X++: ((prmValue == "") || (Table.Field1 == prmValue)) X++: ((prmValue == "") || (Table.Field1 like prmValue)) P.S.: Вот сижу сейчас и думаю, как же я раньше на такие грабли не наступал? Может действительно пример искуственен, а в жизни есть какая-то комбинация дополнительных условий, которая всегда спасала? ![]() Последний раз редактировалось S.Kuskov; 13.10.2009 в 09:10. |
|
![]() |
#5 |
MCITP
|
![]() Цитата:
Сообщение от DSPIC
![]() Не совсем согласен с вырожденностью. Я, например, хочу получить итоговые суммы по отделам, наименования которых начинаются на "OUT*"
X++: while select sum (amount) from tmpTable group by department where tmpTable.department like 'OUT*' { info(strFmt("%1 - %2", tmpTable.department, tmpTable.amount)); } X++: while select tmpTable group by Field1 where tmpTable.Field1 == '1' К чему придираемся?
__________________
Zhirenkov Vitaly |
|
|
За это сообщение автора поблагодарили: DSPIC (0). |
Теги |
bug, баг, временная таблица, запрос (query), ошибка |
|
![]() |
||||
Тема | Ответов | |||
Временная таблица | 21 | |||
производительность: map или временная таблица | 5 | |||
Временная таблица + RLS | 6 | |||
select sum(amount) from временная таблица | 6 | |||
next и временная таблица | 3 |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|