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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.03.2010, 15:34   #1  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,448 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Rimantas Посмотреть сообщение
Как можно перевести ето :
Код:
 while select custInvTrns index hint ItemIdIdx where
      custInvTrns.ItemId == invSum.ItemId &&
      custInvTrns.InvoiceDate >= dBgn        &&
      custInvTrns.InvoiceDate <= dEnd        &&
      custInvTrns.InventDimId == invSum.inventDimId
      join custInvJrn where custInvJrn.InvoiceId == custInvTrns.InvoiceId
      {
            nPrd    += custInvTrns.Qty;
            nPrdSum += custInvTrns.LineAmount * ( custInvJrn.ExchRate ? custInvJrn.ExchRate / 100 : 1 );
      }
на селект с sum( )
если вы уверены, в том что вот здесь вам совершенно точно не нужно округление:
Код:
nPrdSum += Currency::Amount(custInvTrns.LineAmount * ( custInvJrn.ExchRate ? custInvJrn.ExchRate / 100 : 1 ))
, то можно попытаться группировать по custInvJrn.ExchRate
Код:
     while select sum(Qty), sum(LineAmount) from custInvTrns 
      group by ExchRate
      index hint ItemIdIdx where
      custInvTrns.ItemId == invSum.ItemId &&
      custInvTrns.InvoiceDate >= dBgn        &&
      custInvTrns.InvoiceDate <= dEnd        &&
      custInvTrns.InventDimId == invSum.inventDimId
      join custInvJrn where custInvJrn.InvoiceId == custInvTrns.InvoiceId
      {
            nPrd    += custInvTrns.Qty;
            nPrdSum += custInvTrns.LineAmount * ( custInvJrn.ExchRate ? custInvJrn.ExchRate / 100 : 1 );
      }
, но сдаётся мне, что в общем случае без округления не обойтись
Старый 18.03.2010, 15:45   #2  
Rimantas is offline
Rimantas
Участник
 
304 / 16 (1) ++
Регистрация: 30.04.2004
Адрес: Utena , Lithuania
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
если вы уверены, в том что вот здесь вам совершенно точно не нужно округление:
Код:
nPrdSum += Currency::Amount(custInvTrns.LineAmount * ( custInvJrn.ExchRate ? custInvJrn.ExchRate / 100 : 1 ))
, то можно попытаться группировать по custInvJrn.ExchRate
Код:
     while select sum(Qty), sum(LineAmount) from custInvTrns 
      group by ExchRate
      index hint ItemIdIdx where
      custInvTrns.ItemId == invSum.ItemId &&
      custInvTrns.InvoiceDate >= dBgn        &&
      custInvTrns.InvoiceDate <= dEnd        &&
      custInvTrns.InventDimId == invSum.inventDimId
      join custInvJrn where custInvJrn.InvoiceId == custInvTrns.InvoiceId
      {
            nPrd    += custInvTrns.Qty;
            nPrdSum += custInvTrns.LineAmount * ( custInvJrn.ExchRate ? custInvJrn.ExchRate / 100 : 1 );
      }
, но сдаётся мне, что в общем случае без округления не обойтись
Уверен , точное ненужное ...

Но я думал обо том , как сделать с одним select , то ето похоже так :

Код:
   select sum(Qty), sum(LineAmount ) from custInvTrns 
      group by ExchRate
      index hint ItemIdIdx where
      custInvTrns.ItemId == invSum.ItemId &&
      custInvTrns.InvoiceDate >= dBgn        &&
      custInvTrns.InvoiceDate <= dEnd        &&
      custInvTrns.InventDimId == invSum.inventDimId
      join custInvJrn where custInvJrn.InvoiceId == custInvTrns.InvoiceId;
Как то хочеться while избежать ... Попробую важе предложение ...
Теги
query

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
jinx: Dynamics AX &ndash; Query-Ranges und Filtereinstellungen des Benutzers Blog bot DAX auf Deutsch 0 04.02.2010 00:05
Помогите с Query Vitali_i DAX: Программирование 22 21.11.2009 17:59
Dynamics AX Geek: Using query() Blog bot DAX Blogs 0 28.10.2006 16:40
Помогите новичку в создании Query lev DAX: Программирование 2 19.06.2006 10:29
Помогите с query 6apcyk DAX: Программирование 23 09.09.2005 13:50
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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