![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сортировка в запросе [D6, Paradox]
Mishenka © (2006-08-30 15:54:00)В запросе заполнил свойство SQL, после чего добавил ещё подстановочный столбец (тобишь столбец в свойстве SQL не описан). Соответственно при попытке сделать сортировку по этому столбцу путём указания в свойстве SQL Ordet BY имя столбца выдаётся ошибка "Field in order by must be in result set". Как тогда сделать сортировку по подстановочному столбцу, который не описан в свойстве SQL, а был добавлен вручную???
Sergey13 (2006-09-06 16:38:00) [1]> [15] Mishenka (06.09.06 16:26)
Так по аналогии, если вычисление простое, основанное на полях одной записи. Если для вычисления требуется что-то еще то или никак или с большими извратами или воспользоваться советом MsGuns-а перегнать все в CDS и там как угодно сортировать.
Desdechado (2006-09-06 16:32:00) [2]а сортировку по цвету обоев не хочешь сделать?
Mishenka (2006-09-06 16:26:00) [3]
> Sergey13 © (31.08.06 10:00) [12]
> Таблица в запросе может быть использована неоднократно.
> Используй псевдонимы.
Спасибо так всё заработало!
Остался последний вопрос, а как сделать сортировку для вычисляемого поля, которое вычисляется по событию OnCalcFields, было добавлено вручную и тоже не содержится в тексте SQL запроса?
Sergey13 (2006-08-31 11:19:00) [4]> [13] MsGuns © (31.08.06 11:12)
> А где ты в сабже увидел компонент ?
В том то и дело, что НЕ увидел, но по присутствию свойства SQL понял, что это НЕ CDS. 8-)
MsGuns (2006-08-31 11:12:00) [5]>Sergey13 © (30.08.06 16:43) [7]
>Это другой компонент. Некорректно слегка, не находишь?
А где ты в сабже увидел компонент?
>ANB © (30.08.06 16:44) [8]
>и как в него order by то запихать на несуществующее поле ?
Ты путаешь извлечение данных с их отображением.
У TClientDataSet нет вообще никаких намеков на Order By и вообще сиквель.
Но у него есть много другого, в т.ч. Sort. По любомуполю.
Sergey13 (2006-08-31 10:00:00) [6]> [11] Mishenka (31.08.06 09:53)
Таблица в запросе может быть использована неоднократно. Используй псевдонимы.
Select * from table_name t1, table_name t2
where t1.id=t2.id_2
Mishenka (2006-08-31 09:53:00) [7]Просто у меня таблица связана сама с собой, то бишь подстановка происходит происходит из связанной записи из той же таблицы. Не совсем понятно как в этом случае в запросе подцепить подстановочное поле...
Sergey13 (2006-08-31 09:05:00) [8]> [9] Mishenka (31.08.06 08:55)
А как подробнее? В таблице есть поле, которое ссылается на поле другой таблицы. Что бы удобно редактировать это поле с выпадающим списком организуют лукап-поля (или подстановочные как ты пишешь). Тот же самый результат можно сделать прямо в запросе, т.е. "приделав" к 1-ой таблице значения из 2-ой. Редактировать такое поле нельзя (для этого остается лукап-поле), но сортировать по нему - в лет.
Mishenka (2006-08-31 08:55:00) [9]
> Sergey13 © (30.08.06 16:02) [1]
> Никак. Можно только создать в запросе его аналог (наряду с лукапным) и отсортировать по нему.
А можно поподробнее, что за аналог имеется ввиду?
ANB (2006-08-30 16:44:00) [10]
> Три волшебных буковки: CDS
> ;)
и как в него order by то запихать на несуществующее поле ?
Sergey13 (2006-08-30 16:43:00) [11]> [6] MsGuns © (30.08.06 16:40)
Это другой компонент. Некорректно слегка, не находишь?
MsGuns (2006-08-30 16:40:00) [12]>Sergey13 © (30.08.06 16:12) [4]
>Ну разубеди меня! 8-)
Три волшебных буковки: CDS
;)
ANB (2006-08-30 16:24:00) [13]
> SQL Ordet BY
А SQL движок знает, что ты на клиенте добавил это поле ?
Sergey13 (2006-08-30 16:12:00) [14]> [2] MsGuns © (30.08.06 16:06)
Ну разубеди меня! 8-)
Desdechado (2006-08-30 16:09:00) [15]> Уверен ?
Такое поведение у некоторых серверов встречается, однако оно противоречит здравому смыслу и стандарту.
MsGuns (2006-08-30 16:06:00) [16]>Sergey13 © (30.08.06 16:02) [1]
>Никак.
Уверен ?
Sergey13 (2006-08-30 16:02:00) [17]Никак. Можно только создать в запросеего аналог (наряду с лукапным) и отсортировать по нему.