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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.12.2012, 16:39   #1  
Samuel is offline
Samuel
Участник
 
12 / 10 (1) +
Регистрация: 20.04.2010
Проясните запрос
Часто встречаю следующий или похожий код
X++:
select sum(Qty) from inventTrans
  group by ItemId
  where inventTrans.DatePhysical >= dateStart
     && inventTrans.DatePhysical <= dateEnd
     && inventTrans.ItemId       == inventTable.ItemId
     && (InventTrans.StatusIssue      == StatusIssue::Sold
         || InventTrans.StatusReceipt == StatusReceipt::Purchased)
  join inventDim
    where inventDim.inventDimId      == InventTrans.inventDimId
       && inventDim.InventLocationId == "12345";
Скажите, а не надо ли inventTrans группировать по inventDimId?
Ведь для ItemId существует множество inventDimId, в результате чего inventDim будет отбираться по случайному InventTrans.inventDimId
__________________
Axapta 3.0, Build #1951.17, SP1

Последний раз редактировалось Samuel; 06.12.2012 в 16:41.
Старый 06.12.2012, 16:42   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Samuel Посмотреть сообщение
InventDim будет отбираться по случайному InventTrans.inventDimId
Нет не будет. Порядок выполнения такого запроса следующий. Сначала соединение, а уже потом группировка.

Можете в таком запросе безболезненно заменить "join inventDim" на "exists join inventDim"


P.S.: cм.также Порядок выполнения GroupBy и Exists Join для временных таблиц

Последний раз редактировалось S.Kuskov; 06.12.2012 в 16:47.
За это сообщение автора поблагодарили: Samuel (1), Deepoint (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Запрос с начальным фильтром по-умолчанию yuriy_acti DAX: Программирование 10 17.12.2012 12:38
ГФО, использование "Запрос - функция" в ГФО AnGor DAX: Функционал 4 13.05.2011 23:43
Если в запросе у первой таблицы CacheLookup = None, то запрос идет без NOLOCK raz DAX: Программирование 1 04.02.2010 16:12
передача параметров в запрос while select tolstjak DAX: Программирование 13 15.02.2009 19:39
Не работает запрос на нескольких компаниях Bega DAX: Программирование 3 16.09.2005 10:21

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

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

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