11.04.2003, 16:51 | #1 |
Участник
|
Динамическая группировка в SQL
каким способом в SQL X++ строить фразу "group by"?
while select inventTrans group by ItemId, ConfigId,..... /// группы ьогут меняться |
|
11.04.2003, 17:13 | #2 |
Moderator
|
Честно говоря, мне не совсем ясно, что ты хочешь получить в результате такого запроса. Если ты группируешь по каким то полям, то ты в select'е можешь получить только эти же поля + агрегаты по остальным полям:
PHP код:
|
|
11.04.2003, 17:21 | #3 |
Участник
|
нет, нет не так выразился, имею ввиду что мне нужно компантвать сам текст SQL запроса динамически а потом его выполнять. А частный случай -ка раз добавление или удаление, или смена местамии аргументов во фразе group by. Вот о чем я, прошу прошения за неверную формулировку. Исользовать в моем случае Query нельзя.
|
|
11.04.2003, 17:35 | #4 |
Moderator
|
Цитата:
нет, нет не так выразился, имею ввиду что мне нужно компантвать сам текст SQL запроса динамически а потом его выполнять
|
|
11.04.2003, 17:55 | #5 |
Участник
|
Как динамически формировать SQL запрос? То есть, могу ли я сформировать текст запроса в строковой переменной, а потом выполнить его на сервере. Имею ввиду конструкцию:
while select ..... { } |
|
11.04.2003, 18:09 | #6 |
Moderator
|
Цитата:
Как динамически формировать SQL запрос? То есть, могу ли я сформировать текст запроса в строковой переменной, а потом выполнить его на сервере.
Тогда есть еще один способ. Насколько он удобен - решать Вам. Можно динамически создать job/метод класса, откомпилировать его, выполнить и удалить. Повторюсь - решать вам. p.s. Есть еще класс xppCompiler, но это примерно та же идея. |
|
11.04.2003, 18:17 | #7 |
NavAx
|
Мы не ищем лёгких путей
Проще всего сформировать запрос в строковой переменной, после чего выполнить команду результат = runbuf(тело функции, входящий параметр1, ..., входящий параметрN).
__________________
С уважением, Игорь Ласийчук. |
|
11.04.2003, 18:22 | #8 |
Модератор
|
Цитата:
Проще всего сформировать запрос в строковой переменной, после чего выполнить команду
результат = runbuf(тело функции, входящий параметр1, ..., входящий параметрN). |
|
11.04.2003, 18:23 | #9 |
Moderator
|
Цитата:
Так медленнее (по крайней мере так было у меня в 2.5 SP5). Медленнее не в разы, но все-таки..
|
|
11.04.2003, 18:32 | #10 |
Участник
|
вот это ближе к делу, но как мне использовать тогда такую конструкцию?
st="select *from ......" while runbuf(st) { } не проверял но мне кажется работать не будет.. А вообще, раз Аксапта интерпретирует исполняемый код , то я так предпологал что может есть возможность использовать макроподстановку которая создается непосредственно во время выполнения, помнится в Foxpro (там тоже интерпретатор) такая штука была, вот хорошо было бы .. например: T ="inventTrans"; while select &T // а выполняется "while select inventTrans" { } может есть способ |
|
11.04.2003, 18:39 | #11 |
Moderator
|
Цитата:
вот это ближе к делу, но как мне использовать тогда такую конструкцию?
st="select *from ......" while runbuf(st) { } |
|
11.04.2003, 18:46 | #12 |
Участник
|
все получилось!
Огромное всем С П А С И Б О за ответы! |
|
|
|