Показать сообщение отдельно
Старый 12.05.2011, 16:54   #7  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от mr.ZF Посмотреть сообщение
Так вот, хочу понять как правильно написать код, чтобы все суммы амортизации из RAssetTrans сложить в одну сумму при чём по ToDate (по сегодня)
Есть несколько критериев правильности.
самый правильный - это воспользоваться стандартными отчетами
правильный - воспользоваться стандартными классами. например, RAssetSumCalc_Trans

но, насколько я понимаю, вы хотите получить суммы одним запросом. это не совсем правильно с логической точки зрения, а также с точки зрения дальнейшей поддержки. но зато будет одни быстрый SQL-запрос.

насколько я помню, аксапта 3.0 позволяет суммировать только тогда, когда во внешних селектах будут присутствовать агрегатные функции. т.е. в ax3.0 не работает код
X++:
select RAssetTable 
join sum(AmountCur) from RAssetTrans
where RAssetTrans.AccountNum == RAssetTable.AccountNum;
Название: 1.PNG
Просмотров: 1143

Размер: 16.5 Кб

попробуйте задать агрегатную функцию count(recid) для внешней таблицы.

X++:
select count(recid) from RAssetTable
join sum(AmountCur) from RAssetTrans
where RAssetTrans.AccountNum == RAssetTable.AccountNum;
=================
но все-таки правильно - это воспользоваться стандартным функционалом.
даже если запросов там будет больше.

=================
кстати, ax2009 вполне работает с обоими запросами.
__________________
полезное на axForum, github, vk, coub.