Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.04.11;
Скачать: [xml.tar.bz2];

Вниз

Сортировка по вычислимому полю в TQuery   Найти похожие ветки 

 
clarin   (2002-03-19 14:24) [0]

Плииииз....помогите советом....Как можно отсортировать таблицу по вычислимому полю в TQuery?


 
Johnmen   (2002-03-19 14:27) [1]

Ты бы хоть для приличия написал какая база !
Если IB, то используй FIBPlus...

А вообще - НИКАК !!!


 
fishka   (2002-03-19 14:43) [2]

В конце Query можно написать так:
order by 2//
где 2 - номер вычисляемого поля в запросе, например:
select p1, sum(p2)
from ....
order by 2


 
Fareader   (2002-03-19 14:48) [3]

>Johnmen
Не стоит быть таким категоричным, fishka дело говорит


 
Johnmen   (2002-03-19 14:48) [4]

>fishka : это если вычисляетя в запросе да и вычисления простые,
а если в приложении вычисляемое поле у НД - см.выше...


 
clarin   (2002-03-19 14:49) [5]

Johnmen: база Oracle
fishka: в SQL-запросе я сделать не могу, т.к. на этапе открытия таблицы выполняется событие OnCalcFields , в котором и обсчиьываеься значение текщей записи для данного поля...


 
clarin   (2002-03-19 14:49) [6]

Johnmen: база Oracle
fishka: в SQL-запросе я сделать не могу, т.к. на этапе открытия таблицы выполняется событие OnCalcFields , в котором и обсчитывается значение текщей записи для данного поля...


 
Johnmen   (2002-03-19 14:54) [7]

Тогда повторюсь - НИКАК !


 
clarin   (2002-03-19 15:02) [8]

мда...беда...


 
Alexandr   (2002-03-19 15:04) [9]

а чего беда-то?
У тебя же Oracle!
Вычисляй на сервере, а не на клиенте.
И сортируй там


 
clarin   (2002-03-19 15:21) [10]

Alexandr: у меня в query1 поля: key,naim,...
в query2: key,cost,...
так вот мне нужно в DBGrid-е показать Query1 с полями naim,cost
Это упрощенная задача,но воббще-то Query1 еще связано с Query3,Query4 и тд по коду key.
на обработку Query1.OnCalcFields вывожу по коду key данные из Query2 по тому же коду значение поля naim...
И поэтому я не совсем поняла: что значит вычислять на сервере....


 
Val   (2002-03-19 15:41) [11]

clarin (19.03.02 15:21)
И поэтому я не совсем поняла: что значит вычислять на сервере....
Создайте на сервере представление, раз уж часто работаете с данными в таком виде.


 
Lusha   (2002-03-19 15:41) [12]

Господа имеют Вам сказать, сударыня, что возможно следующее написание запроса к БД
SELECT d.naim, d.cost, e.naim as naim1
FROM Table1 d, Table2 e
WHERE d.key = e.key

в этом случае Вы получите вычисляемое поле, вычисленное непосредственно на серевере...


 
clarin   (2002-03-19 16:22) [13]

Вы правы,что если хочешь нормальный ответ-правильно задай вопрос...чего сделать не смогла..не правильно сформулировала вопрос..
Так вот Query1 в вычислимом поле naim собирает по коду key_ из всех Query2 по полю naim2,Query3 по полю naim3,Query4 по полю naim4 и тд naim:=naim1+naim2+naim3+...-полное наименование, а если naim1,naim2,naim3 и тд пустые-то в naim:="удален "
и я все это проделала в Query1.OnCalcFields


 
Lusha   (2002-03-19 16:34) [14]

Честно говоря я мало что понял кроме того, что вычисляемое поле есть конкатенация некоторых полей из выборки, Она легко реализуется в одном запросе, как впрочем и условие проверки на NULL некоторых полей...


 
alexandervasjuk   (2002-03-19 16:36) [15]

Клэрин

почему все это нельзя организовать в базе как процедуру и обращаться к ней с order by?


 
clarin   (2002-03-19 16:49) [16]

спасибо всем...навели на мысль.....хочу опробовать :)


 
Sergey13   (2002-03-20 09:20) [17]

2alexandervasjuk © (19.03.02 16:36)
Зачем городить огород с процедурой если это решается простым запросом. Lusha © абсолютно прав. Запрос может выглядеть примерно так:

SELECT a.key,a.name||nvl(b.name,"")||nvl(c.name,"") all_name
FROM table1 a, table2 b, table3 c
WHERE a.key=b.key(+) AND a.key=c.key(+)
ORDER BY 2

(+) можно не ставить если значения в table2 и table3 гарантировано есть. NVL тоде можно не использовать если значения гарантировано не NULL. Количество таблиц можно отредактировать по необходимости.




Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2002.04.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.007 c
14-32944
IronHawk
2002-02-27 16:22
2002.04.11
Как программно определить, создана ли дочерняя форма ?


3-32677
Gromozeka
2002-03-19 06:35
2002.04.11
Вставка данных в шаблон MS Word


4-33021
DelBoy
2001-12-15 21:05
2002.04.11
Приложение - Агент


4-33024
Alexsyy
2002-02-08 16:58
2002.04.11
Пожалуйста помогите


3-32674
reg
2002-03-20 15:21
2002.04.11
поиск по бд





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский