Не Срабывает ни order by ни group by

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Rishat
Постоянный обитатель
Сообщения: 191
Зарегистрирован: 12 сен 2005, 17:10
Откуда: Наб. Челны

Не Срабывает ни order by ни group by

Сообщение Rishat »

Вот часть кода:
select ekndriver.nrec, ekndriver.tabn, katpodr.nrec, katpodr.name
from ekndriver, katpodr
where (( ekndriver.cpodr == katpodr.nrec ))
order by katpodr.name
;
Мне надо отсортировать по katpodr.name.
Команда order by работает только в SQL-запросе (и то с предупреждением), в ARD-отчете не работает.
Команда group by также не срабатывает (даже в SQL-запросе).
Подскажите пожалуйста, есть обходной путь?
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Сообщение Den »

Ну дык на внешнюю выгрузку уходит..)

1. Попробуй поменять местами
select ekndriver.nrec, ekndriver.tabn, katpodr.nrec, katpodr.name
from ekndriver, katpodr
where (( katpodr.nrec /==ekndriver.cpodr ))
order by katpodr.name

2. Ну или выгрузи во временную таблу, построив нужный индекс.
SergZol
Постоянный обитатель
Сообщения: 155
Зарегистрирован: 03 сен 2007, 19:06
Откуда: Россия,Казань

Сообщение SergZol »

при сортировке не по корневой таблице необходимо указывать полный индекс. Исходя из словаря самый подходящий UNN+NAME.
order by пишем примерно так:
order by katpodr.unn+katpodr.name
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Сообщение Den »

SergZol писал(а):при сортировке не по корневой таблице необходимо указывать полный индекс. Исходя из словаря самый подходящий UNN+NAME.
order by пишем примерно так:
order by katpodr.unn+katpodr.name
А вы попробуйте выполнить запрос

select katorg.name
from basedoc,katorg(KATORG06)
where (( basedoc.corg == katorg.nrec )); и посмотреть результат..
timaskraft
Сообщения: 17
Зарегистрирован: 21 май 2008, 11:03
Откуда: Витебск

Сообщение timaskraft »

А версия Галактики какая? В 5.85 до определенных патчей - не работало Order by
Rishat
Постоянный обитатель
Сообщения: 191
Зарегистрирован: 12 сен 2005, 17:10
Откуда: Наб. Челны

Сообщение Rishat »

Галактика 8.10
SergZol
Постоянный обитатель
Сообщения: 155
Зарегистрирован: 03 сен 2007, 19:06
Откуда: Россия,Казань

Сообщение SergZol »

Den писал(а):
SergZol писал(а):при сортировке не по корневой таблице необходимо указывать полный индекс. Исходя из словаря самый подходящий UNN+NAME.
order by пишем примерно так:
order by katpodr.unn+katpodr.name
А вы попробуйте выполнить запрос

select katorg.name
from basedoc,katorg(KATORG06)
where (( basedoc.corg == katorg.nrec )); и посмотреть результат..
А зачем указали ИНДЕКС в секции FROM???
Я понял, что Вам нада отсортировать по наименованию организации.
просто по наименованию индекса НЕТ. поэтому сортировка возможна только с внешней выгрузкой. Есть ближайший индекс UNN+NAME. Поэтому можем выполнить сортировку по двум полям ИНН+наименование!!!
Пиши ТАК:
select katorg.name
from basedoc,katorg
where (( basedoc.corg == katorg.nrec ))
order by katorg.unn+katorg.name;
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Сообщение Den »

Ну это не то,что требуется - товарисчу же надо по name сортировка... а приведенном примере, она все же не по наименованию будет..
SergZol
Постоянный обитатель
Сообщения: 155
Зарегистрирован: 03 сен 2007, 19:06
Откуда: Россия,Казань

Сообщение SergZol »

Я же говорю при отсутствии индекса это возможно сделать только на внешней выгрузке.
либо пересмотреть все гомбинации индекса может попадется нужный, где кроме наименования остальные компоненты индекса не заполнены или имеют одинаковый код.
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Сообщение Den »

select k.name from katmol k, sporder
where ((sporder.ccmol==k.nrec ))
order by k.name;


индекс в katmol по name есть .Но все равно получим внешнюю выгрузку.
Дело в том, что в подцепке явно указан индекс по k.nrec. И неважно какой ты order by сделаешь...
Rishat
Постоянный обитатель
Сообщения: 191
Зарегистрирован: 12 сен 2005, 17:10
Откуда: Наб. Челны

Сообщение Rishat »

SergZol писал(а):при сортировке не по корневой таблице необходимо указывать полный индекс. Исходя из словаря самый подходящий UNN+NAME.
order by пишем примерно так:
order by katpodr.unn+katpodr.name
на ваше сообщение отвечаю : в таблице katpodr нет поля unn, поэтому данное решение не подходит :(
Rishat
Постоянный обитатель
Сообщения: 191
Зарегистрирован: 12 сен 2005, 17:10
Откуда: Наб. Челны

Сообщение Rishat »

SergZol писал(а):
Den писал(а):
SergZol писал(а):при сортировке не по корневой таблице необходимо указывать полный индекс. Исходя из словаря самый подходящий UNN+NAME.
order by пишем примерно так:
order by katpodr.unn+katpodr.name
А вы попробуйте выполнить запрос

select katorg.name
from basedoc,katorg(KATORG06)
where (( basedoc.corg == katorg.nrec )); и посмотреть результат..
А зачем указали ИНДЕКС в секции FROM???
Я понял, что Вам нада отсортировать по наименованию организации.
просто по наименованию индекса НЕТ. поэтому сортировка возможна только с внешней выгрузкой. Есть ближайший индекс UNN+NAME. Поэтому можем выполнить сортировку по двум полям ИНН+наименование!!!
Пиши ТАК:
select katorg.name
from basedoc,katorg
where (( basedoc.corg == katorg.nrec ))
order by katorg.unn+katorg.name;
Нужно отсортировать по наименованию ПОДРАЗДЕЛЕНИЯ, работников из таблицы Ekndriver.
И еще вопрос: а как работать с внешней выгрузкой? Просто никогда не сталкивался с этим.
Ответить