AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.11.2006, 16:00   #1  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
select sum(amount)
select sum(amount) from payTrans
where payTrans.sourceTableId == rPayAverageEarnEmplPeriodTable.tableId &&
payTrans.sourceRecId == rPayAverageEarnEmplPeriodTable.recId;

???

amount - это я так понимаю переменная EDT RpayTrans, тогда если ей происходит присвоение, по какому полю считается сумма?
Старый 16.11.2006, 16:03   #2  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
то есть типа RPayAmount
Старый 16.11.2006, 16:03   #3  
LEX is offline
LEX
NavAx
Аватар для LEX
NavAx Club
 
33 / 12 (1) ++
Регистрация: 06.04.2004
amount это поле в таблице payTrans, по которому и считается сумма.
Старый 16.11.2006, 16:04   #4  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
чему тогда эта сумма присваивается?
Старый 16.11.2006, 16:05   #5  
KiselevSA is offline
KiselevSA
Злыдни
Аватар для KiselevSA
Злыдни
Лучший по профессии 2015
 
958 / 333 (13) ++++++
Регистрация: 25.01.2002
Адрес: Москва
Это поле таблицы RPayTrans
Старый 16.11.2006, 16:05   #6  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
вообще смысл этой конструкции?
Старый 16.11.2006, 16:07   #7  
LEX is offline
LEX
NavAx
Аватар для LEX
NavAx Club
 
33 / 12 (1) ++
Регистрация: 06.04.2004
значит где то дальше у вас для расчетов используется payTrans.amount
Старый 16.11.2006, 16:13   #8  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
то есть считается сумма по полю amount по всем записям данной таблицы, удовлетворяющим заданному условию, а затем эта сумма попадает в поле amount какой-то ЗАПИСИ таблицы "RPayTrans payTrans", но опять возникает вопрос: какая это ЗАПИСЬ, новая, последняя, первая?
Старый 16.11.2006, 16:16   #9  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
кстати, payTrans.amount действительно используется далее, но какая это запись данной таблицы?
Старый 16.11.2006, 16:16   #10  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
а затем эта сумма попадает в поле amount какой-то ЗАПИСИ таблицы "RPayTrans payTrans", но опять возникает вопрос: какая это ЗАПИСЬ, новая, последняя, первая?
В вашем кусочке кода не видно куда эта сумма попадает
Старый 16.11.2006, 16:16   #11  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
кстати, payTrans.amount действительно используется далее, но какая это запись данной таблицы?
это сумма по нескольким записям
Старый 16.11.2006, 16:18   #12  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Цитата:
Сообщение от Sada Посмотреть сообщение
В вашем кусочке кода не видно куда эта сумма попадает
вот в этом то и проблема этот кусок кода только и стоит:


if (! rPayAverageEarnEmplPeriodTable.sumOnHand)
{
select sum(amount) from payTrans
where payTrans.sourceTableId == rPayAverageEarnEmplPeriodTable.tableId &&
payTrans.sourceRecId == rPayAverageEarnEmplPeriodTable.recId;

ttsbegin;
// -->
localRecId = rPayAverageEarnEmplPeriodTable.RecId;
select forupdate rPayAverageEarnEmplPeriodTable where rPayAverageEarnEmplPeriodTable.RecId == localRecId;
// <--

rPayAverageEarnEmplPeriodTable.sumOnHand =/* payTrans.amount + */this.Calc_VacationSum();
rPayAverageEarnEmplPeriodTable.update();

ttscommit;
}
Старый 16.11.2006, 16:19   #13  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Цитата:
Сообщение от Sada Посмотреть сообщение
это сумма по нескольким записям
странно, а я думал, что это обращение к полю данной таблицы???
Старый 16.11.2006, 16:19   #14  
eugene egorov is offline
eugene egorov
Участник
Аватар для eugene egorov
 
273 / 97 (4) ++++
Регистрация: 05.06.2002
Адрес: Москва
Please note, that the results will always be returned in the table variable. If you use a field list in the select statement, only those fields will be available in the table variable. If you use aggregate functions such as sum or count, the sums or counts are returned in the fields you perform the sum or count over. This also means that you cannot count average or sum date-fields as the result is not a date.
__________________
любитель портвейна и снов с прокисшей капустой в усах
За это сообщение автора поблагодарили: RVS (1), Eldar9x (1).
Старый 16.11.2006, 16:26   #15  
RVS is offline
RVS
Сенбернар
Аватар для RVS
Злыдни
 
696 / 130 (6) +++++
Регистрация: 27.02.2003
Адрес: Королев МО
Переведу : Eldar9x, в Вашем случае - это НИКАКАЯ запись. Это ПЕРЕМЕННАЯ типа "запись таблицы" payTrans, ЕДИНСТВЕННОЕ поле которой имеет осмысленное значение. В этом поле сидит СУММА, которую Вы заказывали.

Вот.

ЗЫ : Опять CAPS LOCK заедать начал
__________________
Best Regards,
Roman
За это сообщение автора поблагодарили: Eldar9x (1).
Старый 16.11.2006, 16:28   #16  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
RVS и всем, огромное спасибо! Выручили )
Старый 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).
Старый 16.11.2006, 16:54   #18  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Вот вот, мне тоже вначале хотелось увидеть что нибудь типа
blablabla = (select sum(amount) from RPayTrans where ... ),
где blablabla, какая то переменная...
Старый 16.11.2006, 17:05   #19  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
RVS и всем, огромное спасибо! Выручили )
Юзайте зеленые квадратики
Старый 16.11.2006, 18:21   #20  
MironovI is offline
MironovI
Участник
 
724 / 77 (4) ++++
Регистрация: 30.05.2005
спасибо за тему - понастольгтировал
Теги
amount, запрос (query), как правильно

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
SUM по Amount в Query. С динамическими фильтрами по Grid Poleax DAX: Программирование 8 25.09.2008 16:04
Разница NotInTTS и Found Logger DAX: База знаний и проекты 6 18.09.2008 12:35
Отчет "Запасы в наличии" evb DAX: Программирование 19 17.01.2008 07:37
Вопрос про Demand Planner slava09 DAX: Функционал 4 25.09.2006 11:43
select sum(amount) from временная таблица ATimTim DAX: Программирование 6 11.06.2004 14:16
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 13:10.