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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.11.2005, 10:16   #1  
CDR is offline
CDR
MCTS
MCBMSS
 
236 / 175 (6) ++++++
Регистрация: 27.11.2003
? Агрегирование с фильтром
Доброе время суток, All.
Есть следующая простенькая задачка. Необходимо просуммировать данные в одной таблице, наложив фильтр на другую таблицу, связанную с первой. Возьмем для примера SalesLine и SalesTable.
Код:
select sum(SalesQty) from SalesLine
join SalesTable
where SalesTable.SalesId == SalesLine.SalesId
   && SalesTable.DeliveryDate <= today();
Такой select без проблем выполниться в SQL но выдает ошибку в Axapta "Невозможно выбрать запись в 'Строки заказа' ('SalesLine') Заказ: , .База данных SQL обнаружила ошибку." В чем проблема?
Старый 10.11.2005, 10:21   #2  
Ned is offline
Ned
Lean Six Sigma
 
680 / 99 (5) ++++
Регистрация: 29.12.2002
Адрес: самолёт
select sum(SalesQty) from SalesLine
exists join SalesTable
where SalesTable.SalesId == SalesLine.SalesId
&& SalesTable.DeliveryDate <= today();
__________________
Viacheslav Nefedov, http://www.nefedov.net, http://restock.guru/
Старый 10.11.2005, 10:23   #3  
Ned is offline
Ned
Lean Six Sigma
 
680 / 99 (5) ++++
Регистрация: 29.12.2002
Адрес: самолёт
а проблема простая и компилятор Вам об этом сказал - выражение join SalesTable транслируется в select * from SalesTable , а у Вас используется агрегирование.
__________________
Viacheslav Nefedov, http://www.nefedov.net, http://restock.guru/
Старый 10.11.2005, 10:25   #4  
CDR is offline
CDR
MCTS
MCBMSS
 
236 / 175 (6) ++++++
Регистрация: 27.11.2003
Да, с exists join все работает, спасибо.
Интересно, почему не работает с inner join?
Старый 10.11.2005, 10:30   #5  
CDR is offline
CDR
MCTS
MCBMSS
 
236 / 175 (6) ++++++
Регистрация: 27.11.2003
стоило написать так:

select sum(SalesQty) from SalesLine
join count(recId) from SalesTable
where SalesTable.SalesId == SalesLine.SalesId
&& SalesTable.DeliveryDate <= today();

и заработало с inner join.
Старый 11.11.2005, 04:02   #6  
StasD is offline
StasD
Участник
 
24 / 15 (1) ++
Регистрация: 10.09.2003
Адрес: Хабаровск
А лучше так

select sum(SalesQty) from SalesLine
join tableid from SalesTable
where SalesTable.SalesId == SalesLine.SalesId
&& SalesTable.DeliveryDate <= today();


см. http://www.axforum.info/forums/showt...&threadid=3411
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вызов формы с заранее заданым фильтром. Dima_Dima DAX: Программирование 22 03.03.2009 17:34
Проблема с фильтром на report gefr DAX: Программирование 0 15.10.2007 18:14
лукап-форма с доп. фильтром patron DAX: Программирование 10 30.03.2007 12:19
Как организовать товар с фильтром funtik DAX: Функционал 1 08.09.2003 15:01
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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