|
![]() |
#1 |
Модератор
|
Конечно я ожидал ответы что будете говорит что использовать Query. Но просто было интересно может кто знает как такой хитрый критерий использовать. Я просто изначально не знаю какой критерий соберет пользователь. Строка критерия хранится в одной таблице. Разумно конечно сразу прибегнуть к Query.
Но тогда другой вопрос.. а как быть с агрегатными функциями в Query? (к примеру SUM или другие) |
|
![]() |
#2 |
Moderator
|
А если как-то вот так?
X++: static void test_SQL_Imitation(Args _args) { #macrolib.SQL_Imitation LedgerTable ledgerTable; ; // имитация: WHERE ledgerTable.AccountNum BETWEEN '01' AND '02яяяя' while select ledgerTable where #sqlBetween( ledgerTable.AccountNum, ['01','02яяяя'] ) { info (ledgerTable.AccountNum); } info ('-------------------------'); // имитация: WHERE ledgerTable.AccountNum IN ('01.20.00','01.50.00','01.70.00','02.30.00','02.40.00','02.60.00') // ! для прогона здесь следует подставить конкретные значения из плана счетов своей системы while select ledgerTable where #sqlIn( ledgerTable.AccountNum, ['01.20.00','01.50.00','01.70.00','02.30.00','02.40.00','02.60.00'] ) { info (ledgerTable.AccountNum); } } X++: #LOCALMACRO.sqlBetween (%1 >= conpeek(%2, 1) && %1 <= conpeek(%2, 2)) #ENDMACRO #LOCALMACRO.sqlIn ( %1 == conpeek(%2, 1) || %1 == conpeek(%2, 2) || %1 == conpeek(%2, 3) || %1 == conpeek(%2, 4) || %1 == conpeek(%2, 5) || %1 == conpeek(%2, 6) || %1 == conpeek(%2, 7) || %1 == conpeek(%2, 8) || %1 == conpeek(%2, 9) || %1 == conpeek(%2,10) ) #ENDMACRO Последний раз редактировалось Gustav; 13.08.2010 в 12:50. |
|
![]() |
#3 |
Участник
|
Нормально там с агрегатными функциями.
Не парьтесь. Нарисуйте query в AOT. мышкой. попереключайте свойства и режимы. в коде сделайте только одну строчку Query q = new Query(querystr(mySuperQueryFromAOT)); |
|
Теги |
query, select |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|