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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.09.2005, 14:54   #1  
yooshi is offline
yooshi
Участник
 
48 / 10 (1) +
Регистрация: 26.05.2005
? Можно ли в инамическом запросе использовать "group by"?
Пожалуйста, подскажите, можно ли в динамическом запросе использовать "group by"? и если можно, то нельзя ли пример.

Большое спасибо
Старый 22.09.2005, 15:04   #2  
sassas
Гость
 
n/a
ну, если очень динамический, то, конечно , нельзя. Ну а если не очень - то, пожалуй, можно!
Старый 22.09.2005, 15:07   #3  
yooshi is offline
yooshi
Участник
 
48 / 10 (1) +
Регистрация: 26.05.2005
Query, а потом QueryRun ... это очень динамически или нет?!
запрос из кода.
Старый 22.09.2005, 15:12   #4  
kvan is offline
kvan
Moderator
Аватар для kvan
Дети Юза
 
775 / 49 (3) +
Регистрация: 07.08.2002
Адрес: Donetsk
PHP код:
queryBuildDataSource.orderMode(OrderMode::GroupBy); 
оно?
Старый 22.09.2005, 15:24   #5  
yooshi is offline
yooshi
Участник
 
48 / 10 (1) +
Регистрация: 26.05.2005
видимо,спасибо большое,даже и не заметил...
а это происходит группировка по всем полям или как?
Старый 22.09.2005, 15:44   #6  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
По полям сортировки.
__________________
Axapta v.3.0 sp5 kr2
Старый 22.09.2005, 15:49   #7  
yooshi is offline
yooshi
Участник
 
48 / 10 (1) +
Регистрация: 26.05.2005
пасибо,а не подскажите какой-нибудь класс в котором можно посмотреть динамическое создание запроса, желательно посложнее, позамороченней)
Старый 22.09.2005, 15:52   #8  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
SysQuery
__________________
Axapta v.3.0 sp5 kr2
Старый 22.09.2005, 15:56   #9  
yooshi is offline
yooshi
Участник
 
48 / 10 (1) +
Регистрация: 26.05.2005
а не подскажите тогда еще и аналог where в динамическом запросе)
пасибо
Старый 22.09.2005, 16:04   #10  
kvan is offline
kvan
Moderator
Аватар для kvan
Дети Юза
 
775 / 49 (3) +
Регистрация: 07.08.2002
Адрес: Donetsk
не совсем понятно что вам нужно ...
посмотрите на эти методы:
PHP код:
 addRange
addLink
addDynalink 
Старый 22.09.2005, 16:04   #11  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
PHP код:
Example
{
...
QueryBuildDataSource ds;
// ...
QueryBuildRange range ds.AddRange (fieldId(CustTableaccountNum));

// Only accept accounts in the range from 1 to 1000, inclusive.
range.value ("1..1000");

Это из встроенного хелпа Axapta
__________________
Axapta v.3.0 sp5 kr2
Старый 22.09.2005, 16:09   #12  
yooshi is offline
yooshi
Участник
 
48 / 10 (1) +
Регистрация: 26.05.2005
аналог вот этого мне нужно...

where (inventTrans.ItemId == inventTable.ItemId &&
inventTrans.DateFinancial > dateStart &&
inventTrans.DateFinancial <= dateFinish)
Старый 22.09.2005, 17:06   #13  
kvan is offline
kvan
Moderator
Аватар для kvan
Дети Юза
 
775 / 49 (3) +
Регистрация: 07.08.2002
Адрес: Donetsk
Цитата:
where (inventTrans.ItemId == inventTable.ItemId &&
addLink
Цитата:
inventTrans.DateFinancial > dateStart &&
inventTrans.DateFinancial <= dateFinish)
addRange
Старый 22.09.2005, 17:09   #14  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
PHP код:
query       q = new Query();
QueryRun    qr;
InventTrans tbl;
;
Q.addDataSource(tablenum(InventTable), "InventTable");
Q.dataSourceTable(tablenum(InventTable)).
    
addDataSource(tablenum(InventTrans), "InventTrans");
Q.dataSourceTable(tablenum(InventTrans)).joinMode(JoinMode::InnerJoin);
/*
//1-й вариант
Q.dataSourceTable(tablenum(InventTrans)).addLink(fieldnum(InventTable, ItemId), fieldnum(InventTrans, ItemId));
Q.dataSourceTable(tablenum(InventTrans)).addRange(fieldnum(InventTrans, DateFinancial)).
    value("02082005..31082005");*/

//или

//2-й вариант
Q.dataSourceTable(tablenum(InventTrans)).addRange(fieldnum(InventTransitemid)).
    
value("((InventTable.itemId == InventTrans.itemId) && (InventTrans.DateFinancial > 01\\\\08\\\\2005) && (InventTrans.DateFinancial <= 31\\\\08\\\\2005))");

qr = new QueryRun(q);
while (
qr.next())
{
    
tbl qr.getNo(2);
    
info(date2str(tbl.DateFinancial,123,2,2,2,2,4));

Но в таком виде запрос очень плохой - сканируется InventTrans в поиске диапазона дат
__________________
Axapta v.3.0 sp5 kr2
Старый 22.09.2005, 17:29   #15  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Можно вместо DateFinancial использовать DateStatus+StatusIssue+StatusReceipt
Старый 22.09.2005, 17:38   #16  
yooshi is offline
yooshi
Участник
 
48 / 10 (1) +
Регистрация: 26.05.2005
спасибо большое
Старый 22.09.2005, 18:53   #17  
yooshi is offline
yooshi
Участник
 
48 / 10 (1) +
Регистрация: 26.05.2005
добавляю addLink. но появляется вопрос,а как этот линк на значение проверять???
то,что он указывает на поле из связ табл - это хорошо,но значение!!!
нужно,что б я мог задать ему то значение на проверку, какое захочу..

помогите,пожалуйста
Старый 22.09.2005, 19:02   #18  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
Значение задается addRange(), линком только джойны
Может, все же RTFM Руководство разработчика, раздел про query build классы?
__________________
Андрей.
Старый 22.09.2005, 22:46   #19  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Цитата:
Изначально опубликовано Wamr
Можно вместо DateFinancial использовать DateStatus+StatusIssue+StatusReceipt
Нет не получится. Там StatusReceipt+StatusIssue+ItemId+DateStatus
__________________
Axapta v.3.0 sp5 kr2
Старый 23.09.2005, 12:44   #20  
yooshi is offline
yooshi
Участник
 
48 / 10 (1) +
Регистрация: 26.05.2005
как же создавать query динамически,если нельзя проверять значение поля,которого я хочу....то, что это поле связываются с друг табл,то из этого прока мало(

может все же есть способ проверить поле на равенство значению. находящемуся в переменной (или еще где), что б не писать w == 'somevalue', a w == somevalue, где somevalue - это переменная или поле ....

а???

как же без этого Вы обходитесь?

а все же, в ranges можно как-нибудь сделать так, что б проверять на равенсто конкретному значению? если писать "=значение" или "значение", то выводятся все схожие значения...
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Pack() "убил" линк в запросе Shakr DAX: Программирование 4 16.01.2007 15:01
ALEG: Можно ли из "клиентского" решения сделать "тиражное" Blog bot DAX Blogs 0 16.11.2006 23:40
"ИЛИ" в запросе через Query Sada DAX: Программирование 4 04.04.2006 13:53
Сортировка в запросе "В Наличии" linney DAX: Программирование 16 20.01.2005 20:01
Кто знает, что можно исправлять в Ах на USR слое без модуля "разработка"? sergey_alekseev DAX: Функционал 2 03.09.2003 11:44
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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