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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.03.2015, 16:03   #1  
vasiliy is offline
vasiliy
Программер
 
288 / 17 (1) ++
Регистрация: 21.10.2004
Адрес: E-burg
Не работает условие по дате.
Есть запрос по проводкам:
Код:
    EXISTS JOIN InventTrans
    WHERE InventTable.ItemId == InventTrans.ItemId
    && InventTrans.inventDimId == 'AAAAJWTIQ'
    && InventTrans.DatePhysical >= str2DateDMY('12.03.2015')
    && InventTrans.DatePhysical <= str2DateDMY('12.03.2015')
Этот запрос не отрабатывает, хотя данные есть.
Если же убрать одно из условий по дате, например так

Код:
    EXISTS JOIN InventTrans
    WHERE InventTable.ItemId == InventTrans.ItemId
    && InventTrans.inventDimId == 'AAAAJWTIQ'
    && InventTrans.DatePhysical >= str2DateDMY('12.03.2015')
То запрос отработает.
В чем может быть причина?
Старый 16.03.2015, 16:16   #2  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
А просто по условию равенства отрабатывает?

InventTrans.DatePhysical == 12\03\2015
__________________
Axapta v.3.0 sp5 kr2
Старый 16.03.2015, 16:20   #3  
vasiliy is offline
vasiliy
Программер
 
288 / 17 (1) ++
Регистрация: 21.10.2004
Адрес: E-burg
Нет, не срабатывает.
Старый 16.03.2015, 16:21   #4  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Наверно в том, что нет проводок за 12.03.2015.
Старый 16.03.2015, 16:21   #5  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Вы точно уверены, что у вас есть проводки на 12 марта?
__________________
Axapta v.3.0 sp5 kr2
Старый 16.03.2015, 16:26   #6  
vasiliy is offline
vasiliy
Программер
 
288 / 17 (1) ++
Регистрация: 21.10.2004
Адрес: E-burg
Да, проводки есть. Правда даты в них изначально были на 03.03. Сейчас джобом поменяли на 12.
Старый 16.03.2015, 16:45   #7  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
А на 03.12 селект случайно ничего не находит?
__________________
Ivanhoe as is..
Старый 16.03.2015, 16:57   #8  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Или поменяли финансовую дату, например
__________________
Axapta v.3.0 sp5 kr2
Старый 16.03.2015, 16:59   #9  
vasiliy is offline
vasiliy
Программер
 
288 / 17 (1) ++
Регистрация: 21.10.2004
Адрес: E-burg
Нет, даты в проводках 100% стоят на 12 марта.
Условие не работает что на физ. дату, что на фин. дату.

При чем когда мы убираем одно условие по дате, и запрос работает. Без разницы какое условие мы оставим ">=" или "<=", запрос отработает.
Старый 16.03.2015, 17:01   #10  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Смотрите, что за запрос уходит на сервер
__________________
Axapta v.3.0 sp5 kr2
Старый 16.03.2015, 17:18   #11  
vasiliy is offline
vasiliy
Программер
 
288 / 17 (1) ++
Регистрация: 21.10.2004
Адрес: E-burg
Через трассировку запросов, ничего толкового не увидел. Те же условия >= и <=.
А где еще посмотреть можно? Что то я давно с таким не сталкивался
Старый 16.03.2015, 17:22   #12  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
А посмотреть, что именно запрос находит? В смысле, какую именно дату

X++:
    ItemId      itemId      = 'XXXXX';
    InventDimId inventDimId = 'AAAAJWTIQ';
    TransDate   transDate   = str2DateDMY('12.03.2015');
    InventTrans inventTrans;
    ;

    select firstonly inventTrans
    order by DatePhysical asc
    where InventTrans.ItemId        == itemId
        && InventTrans.inventDimId  == inventDimId
        && InventTrans.DatePhysical >= transDate;

    info(strFmt('>= %1', InventTrans.DatePhysical));

    select firstonly inventTrans
    order by DatePhysical desc
    where InventTrans.ItemId        == itemId
        && InventTrans.inventDimId  == inventDimId
        && InventTrans.DatePhysical <= transDate;

    info(strFmt('<= %1', InventTrans.DatePhysical));
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Старый 16.03.2015, 17:31   #13  
vasiliy is offline
vasiliy
Программер
 
288 / 17 (1) ++
Регистрация: 21.10.2004
Адрес: E-burg
Результат запросов:
Цитата:
Информация Сообщение (17:29:33) >= 12.03.2015
Информация Сообщение (17:29:33) <= 04.03.2015
Вроде все верно.
Старый 16.03.2015, 17:34   #14  
vasiliy is offline
vasiliy
Программер
 
288 / 17 (1) ++
Регистрация: 21.10.2004
Адрес: E-burg
Точнее нет. <= не вернул 12ое число. Хотя должен был.
Старый 16.03.2015, 17:34   #15  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от vasiliy Посмотреть сообщение
Результат запросов:

Информация Сообщение (17:29:33) >= 12.03.2015
Информация Сообщение (17:29:33) <= 04.03.2015

Вроде все верно.
Нет. Не верно. У Вас оба запроса должны были вернуть 12.03.2015.

Вы можете проверить на уровне SQL-сервера, не оказалось ли записано в поле InventTrans.DatePhysical кроме даты еще и время? Именно наличие времени может привести к подобному результату.
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Старый 16.03.2015, 17:35   #16  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Если во втором запросе действительно сортировка обратная стоит, то получается неверно.
Должна быть одинаковая дата
__________________
Axapta v.3.0 sp5 kr2
Старый 16.03.2015, 17:36   #17  
vasiliy is offline
vasiliy
Программер
 
288 / 17 (1) ++
Регистрация: 21.10.2004
Адрес: E-burg
Может ли быть что это из-за индексов, или еще какого кэша данных?
Старый 16.03.2015, 17:36   #18  
vasiliy is offline
vasiliy
Программер
 
288 / 17 (1) ++
Регистрация: 21.10.2004
Адрес: E-burg
Время в базе данных проверяли. Стоят нули.
Старый 16.03.2015, 17:38   #19  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от vasiliy Посмотреть сообщение
Да, проводки есть. Правда даты в них изначально были на 03.03. Сейчас джобом поменяли на 12.
В том джобе, которым Вы делали замену, в качестве нового значения Вы указывали значение типа Date или UTCDateTime?
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Старый 16.03.2015, 17:40   #20  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от vasiliy Посмотреть сообщение
Время в базе данных проверяли. Стоят нули.
Вы можете сделать запрос не из Axapta, а из SQL Management? Обратите внимание на значение миллисекунд в возвращаемом результате
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Расширенный запрос по дате Димитрий DAX: Программирование 33 20.08.2014 18:45
Работает в джобе но не работает на кнопке формы at5454 DAX: Программирование 2 03.07.2014 10:19
Условие запуска документооборота по контейнерному полю Maximin DAX: Функционал 1 11.04.2013 12:15
AX 2012 Enterprise Portal: Не работает Add indicators в Business Overview Web Part Maxim Gorbunov DAX: Администрирование 1 07.07.2012 14:49
Глючит условие в запросе Sada DAX: Программирование 5 28.04.2006 05:19

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

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

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