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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.04.2015, 22:36   #1  
trudel is offline
trudel
Участник
 
52 / 10 (1) +
Регистрация: 17.04.2015
как правильно строить запросы в аксе.
Здравствуйте. Подскажите как правильнее делать, насколько я понял sql запрос создавать в аксапте крайне нежелательно. Запросы можно создавать через Queries или прям в тексте в коде while select... и погнали. Как правильнее? Или как самому удобнее так и делать? И про "a left join b on ..." уже тоже начитался и все же: реализуется он только следующим запросом к таблице b через передачу в Range (в where ) параметров из значений а?
Старый 24.04.2015, 05:12   #2  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,129 / 916 (35) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от trudel Посмотреть сообщение
Подскажите как правильнее делать
Queries гибче, while select легче читать и проще писать. Поэтому когда можешь, пользуешь x++ select, а когда надо queries.
Цитата:
Сообщение от trudel Посмотреть сообщение
насколько я понял sql запрос создавать в аксапте крайне нежелательно.
Это ты очень важную и правильную вещь понял.

Чтобы легче обучение шло, рекомендую сразу принять мысть что x++ select гораздо ближе к link запросам, чем к sql. Иначе говоря, он лишь внешне напоминает обычный sql.
__________________
Isn't it nice when things just work?
Старый 24.04.2015, 07:41   #3  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,429 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Добавлю ещё, что без Query не обойтись если есть завязка на интерфейс. И в смысле вывода результата выборки (x++ select не привяжешь к датасорсу) и в смысле стандартной возможности изменения запроса через пользовательский интерфейс.
Старый 24.04.2015, 07:50   #4  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2476 (88) +++++++++
Регистрация: 20.08.2005
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
И в смысле вывода результата выборки (x++ select не привяжешь к датасорсу)
Да ладно)
Браузер таблиц намекает на обратное))
С ограничениями, конечно, но тем не менее
__________________
Axapta v.3.0 sp5 kr2
За это сообщение автора поблагодарили: S.Kuskov (2).
Старый 24.04.2015, 07:54   #5  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2476 (88) +++++++++
Регистрация: 20.08.2005
Цитата:
Сообщение от trudel Посмотреть сообщение
И про "a left join b on ..." уже тоже начитался и все же: реализуется он только следующим запросом к таблице b через передачу в Range (в where ) параметров из значений а?
А что с left join не так?
outer join в Аксапте не подходит?
__________________
Axapta v.3.0 sp5 kr2
Старый 24.04.2015, 09:00   #6  
trudel is offline
trudel
Участник
 
52 / 10 (1) +
Регистрация: 17.04.2015
Цитата:
Сообщение от AndyD Посмотреть сообщение
А что с left join не так?
outer join в Аксапте не подходит?
прямо в RAnge (where) указать, что поля таблицы a "not null" ? пробовал так в Query- не вышло (возможно где-то ошибся) и нагуглил именно такой способ разделения на два запроса.
Старый 24.04.2015, 09:29   #7  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2476 (88) +++++++++
Регистрация: 20.08.2005
Цитата:
Сообщение от trudel Посмотреть сообщение
прямо в RAnge (where) указать, что поля таблицы a "not null" ? пробовал так в Query- не вышло (возможно где-то ошибся) и нагуглил именно такой способ разделения на два запроса.
Да, is null или is not null указать нельзя

Но вы бы привели пример запроса, может, другими средствами это решить можно)
__________________
Axapta v.3.0 sp5 kr2
Старый 24.04.2015, 09:54   #8  
trudel is offline
trudel
Участник
 
52 / 10 (1) +
Регистрация: 17.04.2015
Цитата:
Сообщение от AndyD Посмотреть сообщение
Да, is null или is not null указать нельзя

Но вы бы привели пример запроса, может, другими средствами это решить можно)
Разобрался. Спасибо. OUTER JOIN вынес в конец своего запроса и всё получилось.
Не могу сейчас найти вопрос форума, который меня сбил на заморочки, что LEFT join не заменяется outer join-ом, может там какая-то особая ситуация, к сожалению не отыщу теперь.
Старый 24.04.2015, 12:28   #9  
trudel is offline
trudel
Участник
 
52 / 10 (1) +
Регистрация: 17.04.2015
все равно нужна помощь к сожалению.

while select Apole
from a
outer join Bpole
from B
where B.RelationPole == A.RelationPole
join CPole
from C
where C.RelationQQQ == A.RelationQQQ &&
C.RelationTTT== isnull (B.RelationTTT , 0 )

Как в данном случае sql-кий isnull заменить ?
Старый 24.04.2015, 08:39   #10  
Russland is offline
Russland
MCTS
Аватар для Russland
MCBMSS
 
267 / 116 (4) +++++
Регистрация: 17.10.2005
Адрес: Донеччина, Україна
Используйте Query, а чтобы не потеряться для анализа используйте QueryBrowser
За это сообщение автора поблагодарили: A_BAS (1).
Старый 24.04.2015, 08:52   #11  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,129 / 916 (35) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от Russland Посмотреть сообщение
Используйте Query, а чтобы не потеряться для анализа используйте
Удобный инструмент. Только это AOT Query. С Query геренируемыми из кода несколько сложнее и гораздо менее наглядно.
__________________
Isn't it nice when things just work?

Последний раз редактировалось macklakov; 24.04.2015 в 08:56.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Множественные запросы по DataArea и VirtualDataAreaList Dreadlock DAX: Программирование 11 24.07.2012 11:43
Открытая сумма по счету-фактуре - как правильно вычислить? IKA DAX: Программирование 7 21.03.2011 19:46
Запросы / Итоги для ЗПР Prophetic DAX: Программирование 5 02.08.2010 15:13
оптимизируем запросы. SHiSHok DAX: Программирование 18 13.09.2009 21:26
Запросы в Аксапта ibc DAX: Программирование 5 08.08.2005 22:47

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 20:56.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.