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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.05.2015, 16:58   #1  
trudel is offline
trudel
Участник
 
52 / 10 (1) +
Регистрация: 17.04.2015
Помогите с запросом
Если необохдимо в запрос добавить несколько таблиц не связывая их никак, только накладывая на даты условия, верно ли сделано?

Query query = new Query();
QueryBuildDataSource qbds,qbdt;
;

qbds = query.addDataSource(tablenum( VendInvoiceJour ));
qbdt = query.addDataSource(tablenum( CustInvoiceJour ));
qbdt.joinMode(JoinMode::NoExistsJoin);

Условия на запрос накладываются позже в следующем методе
Query .query().dataSourceTable( tablenum( VendInvoiceJour ) ).addRange( fieldnum( VendInvoiceJour, INVOICEDATE ) ).value( SysQuery::range( dateFrom, dateTo ) );
Query .query().dataSourceTable( tablenum( CustInvoiceJour ) ).addRange( fieldnum( CustInvoiceJour, INVOICEDATE ) ).value( SysQuery::range( dateFrom, dateTo ) );

Не получаю нужного результата. Подскажите как добавить несвязанные таблицы Full Join т.е.

И ЕЩЕ, в прошлом вопросе спрашивал про LEFT JOIN и как-то неловко чувствовал себя, от того что в принципе это OUTER JOIN всего лишь. Все таки нашелся тот пост, который тогда сподвиг меня на вопрос как LEFT JOIN сделать Как перевести из sql в axapta
Старый 02.05.2015, 18:27   #2  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Попробуйте описать обычными словами, что Вы хотите получить в результате. Без какого-либо кодирования. Просто словами.

Если я Вас правильно понимаю: список накладных за период, где в левой части - накладные поставщика (приход), а в правой - накладные клиента (расход). Ну, или что Вам надо на самом деле?

Если "человеческими" словами уж совсем никак, то хотя бы напишите запрос, который хотите получить в синтаксисе MS SQL

Куда пойдет результат выборки: на форму в Grid, в отчет или обработка в коде без отображения пользователю
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Старый 02.05.2015, 19:54   #3  
trudel is offline
trudel
Участник
 
52 / 10 (1) +
Регистрация: 17.04.2015
Задача вывести информацию по доставкам настроенных и на продажах и на покупках. Документы продажи и покупки должны ограничиваться периодами. Время выполнения долгое и делаем прогрессбар, для него надо знать сколько документов всего. И мне надо, чтоб в одном запросе были и документы по продаже и документы по покупке, ограниченные датами.
Старый 02.05.2015, 21:56   #4  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,319 / 3547 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от trudel Посмотреть сообщение
Задача вывести информацию по доставкам настроенных и на продажах и на покупках. Документы продажи и покупки должны ограничиваться периодами. Время выполнения долгое и делаем прогрессбар, для него надо знать сколько документов всего. И мне надо, чтоб в одном запросе были и документы по продаже и документы по покупке, ограниченные датами.
У Вас подход изначально неверный. Логика системы такова - что есть таблицы с документами только по продаже (заказ на продажу, накладная клиента) и есть таблицы с документами только по покупке (заказ на покупку, накладная поставщика).

Понятие "Разноска" собственно и служит для того, чтобы информацию из документа скопировать в единую таблицу, из которой впоследствии можно выбирать данные, суммарно и по покупкам и по продажам.

Т.о., если Вам нужна информация допустим только по продажам - то Вам надо брать таблицы накладных клиентов. В случае покупок - накладных поставщиков.

Однако, если Вам нужна информация и по продажам и по покупкам - Вам надо брать таблицу проводок. Складских или финансовых - зависит от того - какая информация Вам требуется в отчете.

Например, если Вы возьмете табличку InventTrans, то Вы одним несложным запросом по одной таблице получите все строки всех документов и по покупке и по продаже. И даже сможете отфильтроваться по дате (DateFinancial). А дальше - все зависит от того - какие данные нужно взять в отчет.
__________________
Возможно сделать все. Вопрос времени
Старый 03.05.2015, 08:28   #5  
trudel is offline
trudel
Участник
 
52 / 10 (1) +
Регистрация: 17.04.2015
Там еще аналогично и deliveryOrderTable присоединяется. Т.е. мне надо
VendTableJour full join CustTableJour on 1=2
full join DeliveryOrderTable on 1=2
...
Where (VendTableJour.invoiceDate between dtn and dte)
Or (CustTableJour between dtn and dte)
Or(DeliveryOrderTable.Date between dtn and dte)

Последний раз редактировалось trudel; 03.05.2015 в 09:51.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Помогите с запросом AvrDen DAX: Программирование 8 07.08.2007 15:24
Помогите с запросом.. DarkBear DAX: Программирование 2 15.08.2005 13:38
Помогите с SQL запросом malex DAX: Программирование 8 26.07.2005 13:43
Помогите пожалуйста с запросом... velk DAX: Программирование 18 20.10.2004 08:44
Пожалуйста, помогите с запросом chel DAX: Программирование 19 12.07.2004 11:53

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

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

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