Тема: select sum(amount)
Показать сообщение отдельно
Старый 16.11.2006, 16:46   #17  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
странно, а я думал, что это обращение к полю данной таблицы???
Eldar9x, мне примерно понятно ваше недоумение. Я сам через это проходил.
Недоумение возникает из-за того, что глядя на конструкцию:

select sum(amount) from payTrans where...

человек, знакомый с "нормальным" SQL (и пока не очень знакомый с "аксаптовским"), понимает, что "нормальный" SQL предъявит в качестве результата такого запроса "сумму поля amount из таблицы payTrans по тем записям, которые отбираются условием where...". Причем в контексте конкретной процедуры (метода) возникает естественный вопрос: "А где же оператор присваивания? Чему это полученное значение присваивается?"

На "аксаптовском SQL", а точнее на X++, вышеупомянутая конструкция означает, что "результат запроса на нормальном SQL" будет помещен в поле amount табличной переменной payTrans.
Т.е. на некотором псевдокоде можно записать примерно так:

payTrans.amount = (select sum(amount) from RPayTrans where ... )

Это просто нужно немножко переварить и прочувствовать (рюмка хорошего коньяка будет нелишней!).
За это сообщение автора поблагодарили: Eldar9x (1).