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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.04.2015, 07:54   #1  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2494 (89) +++++++++
Регистрация: 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   #2  
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   #3  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2494 (89) +++++++++
Регистрация: 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   #4  
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   #5  
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, 13:19   #6  
maldini is offline
maldini
Участник
 
103 / 30 (2) +++
Регистрация: 06.03.2007
Адрес: москва
Цитата:
Сообщение от trudel Посмотреть сообщение
все равно нужна помощь к сожалению.

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 заменить ?
По моему, у таблиц созданных из DAX, значения null выключены.
Старый 24.04.2015, 13:54   #7  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2494 (89) +++++++++
Регистрация: 20.08.2005
Цитата:
Сообщение от maldini Посмотреть сообщение
По моему, у таблиц созданных из DAX, значения null выключены.
В таблицах и нет NULL'ов
В запросе для C выбирается запись с "нулевым релейшеном", если для A нет связи с B
__________________
Axapta v.3.0 sp5 kr2
Старый 24.04.2015, 13:51   #8  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2494 (89) +++++++++
Регистрация: 20.08.2005
Цитата:
Сообщение от trudel Посмотреть сообщение
все равно нужна помощь к сожалению.

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 заменить ?
А версия Аксапты какая?
Если 2012-я, то можно разрулить при помощи вьюх
__________________
Axapta v.3.0 sp5 kr2
Старый 24.04.2015, 14:00   #9  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,342 / 3563 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от trudel Посмотреть сообщение
все равно нужна помощь к сожалению.

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 заменить ?
notexists join
__________________
Возможно сделать все. Вопрос времени
Старый 24.04.2015, 14:06   #10  
trudel is offline
trudel
Участник
 
52 / 10 (1) +
Регистрация: 17.04.2015
NotExists как тут поможет? мне наоборот надо, чтобы запись в С искалась. либо поле из B берется Для ограничения выбора, либо если не нашлось B для A, то берется 0.

А view здесь как ?
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Множественные запросы по 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, время: 08:27.