Страница 1 из 1

Не работает ORDER BY. Помогите!!!

Добавлено: 24 апр 2006, 16:48
Nikos
Помогите в цикле вывести записи из таблицы, отсортированные по дате. Почему-то не работает ORDER BY. Я пишу:
_Loop sald6202 where ((1000 == sald6202.kau3)) order by dfact
Выдает синтаксическую ошибку. Предварительно описана таблица:
table struct sald6202(kau3:comp,dfact:date,sum:double);
Что делаю не так?

Добавлено: 24 апр 2006, 17:00
Nikos
Вопрос снимается - нашел аналогичную тему.

Добавлено: 24 апр 2006, 17:25
Nikos
К сожалению, предложенные варианты или не работают (external) или не подходят (использование индексов), т.к. сортировка может потребоваться как по возрастанию, так и по убыванию. В основном обсуждается сортировка в интерфейсах, мне же нужна именно в цикле - пишу закрытие счетов. Так что, если кто-то подскажет решение, то буду благодарен.

Добавлено: 24 апр 2006, 19:04
coolibin
Нет разницы, где сортируешь, "в интерфейсе" или в цикле. У тебя своя временная таблица - индекс можешь делать какой душе угодно.
Сортировать по индексу можно и в обратном порядке.

Добавлено: 25 апр 2006, 07:40
Nikos
Я создаю индекс:
with index (sald03=dfact)
Потом по нему сортирую:
_Loop sald6202(sald03) where (...
А как отсортировать в обратном порядке?

Добавлено: 25 апр 2006, 08:05
Vek
по-моему, вот так with index ( sald03=dfact(desk) )

Добавлено: 25 апр 2006, 08:08
Nikos
Нет, так не понимает...

Добавлено: 25 апр 2006, 08:20
Vek
вот пример

table struct tmp
(
name:string[100],
num:longint
)
with index
(
t01=num(desc)
);

Добавлено: 25 апр 2006, 08:23
Nikos
Да, так работает (desc<->desk).
Всем большое спасибо.

Добавлено: 25 апр 2006, 08:27
Vek
опечатался, сорри :)