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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.06.2004, 12:20   #1  
Хилари is offline
Хилари
Решили жить вечно?
Аватар для Хилари
 
33 / 10 (1) +
Регистрация: 15.04.2004
Ограничение записей в запросе
Имею запрос:

while select inventTrans
where (inventTrans.inventLocationId()==inventLocation)

Но компилятор ругается на последнюю строку. Подозреваю, что inventLocationId в таблице inventTrans связан через InventDim. Обрабатывать склад в цилке например так:

if (inventTrans.inventItemLocation().inventLocationID()!=inventLocation) continue;

получается очень долго. Как мне ограничить выборку в запросе по складу?
Старый 18.06.2004, 12:29   #2  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
1) Замените: (inventTrans.inventLocationId()==inventLocation)
на (inventTrans.inventLocationId ==inventLocation )
2) Это тоже работать не будет, так как такого поля нет в inventTrans ->
3) Надо делать join inventDim
Старый 18.06.2004, 12:31   #3  
Rokhay is offline
Rokhay
Участник
 
154 / 15 (1) ++
Регистрация: 02.10.2003
Адрес: Ебург
поля InventLocationId в InventTrans просто нету, надо в запрос подключать InventDim
PHP код:
while select inventTrans join inventDim
where inventTrans
.inventDimId==inventDim.inventDimId &&
inventTrans.DatePhysical>=BeginDate && inventTrans.DatePhysical<=EndDate &&
inventTrans.TransType==InventTransType::Purch &&
inventDim.InventLocationId==inventLocationID
    
{} 
Старый 18.06.2004, 12:34   #4  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Не легче самой писать примерно вот так:
PHP код:
static void Job6(Args _args)
{
    
InventTrans     inventTrans;
    
InventDim       inventDim;
    
Date            beginDate;
    
Date            endDate;
    ;

    
beginDate   today() - 180;
    
endDate     today();

    while 
select InventDimId
            from  inventDim
            where inventDim
.InventLocationId    == "" //какой склад ищем
        
join InventTrans
            where inventTrans
.DatePhysical      >=  beginDate
               
&& inventTrans.DatePhysical      <=  endDate
               
&& inventTrans.TransType         ==  InventTransType::Purch
               
&& inventTrans.inventDimId       ==  inventDim.inventDimId
    
{
        
info(inventTrans.InventTransId);
    }

И приятнее, и все видно сразу
Старый 18.06.2004, 12:39   #5  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Дополнение
Действительно, связан с InventDim.
PHP код:
    while select НужныеПоля from inventTrans
        join НужныеПоля from inventDim
            where inventDim
.InventDimId      == inventTrans.InventDimId
               
&& inventDim.InventLocationId == inventLocationId 
Обратите внимание, что InventTrans большая (быстро растущая) таблица, поэтому необходимо добавить еще ограничения на индексированные поля (номенклатура, Статусы, дата статуса, Открыта и т.п.)
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
выбор полей в запросе (не все поля видны) mdconsult DAX: Программирование 12 02.02.2009 09:21
вывод количества записей в таблице на web форме и указание текущей страницы таблицы bambuk1960 DAX: Программирование 1 06.07.2006 13:27
Определённая последовательность записей Dymm DAX: Программирование 4 31.08.2005 14:47
Сортировка в запросе "В Наличии" linney DAX: Программирование 16 20.01.2005 20:01
Ограничение записей на форме Mystery DAX: Программирование 2 26.02.2004 11:28

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

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

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