Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2013, 11:54   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от azzzazzzelDEAN Посмотреть сообщение
PHP код:
select *,(length diameter) AS Calc From Cutter Order By 18 ASC 
записал таким макаром, под 18 номером у меня вычисляеме поле оно пустое, он с таки запросом выводит пустую таблицу.
А на других номерах сортирует верно.
попробуйте так написать
Код:
select AA.* from
  (select *,(length + diameter) AS CalcLenDia From Cutter) AA 
Order By AA.CalcLenDia
(будет работать, только если СУБД поддерживает вложенные запросы)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.12.2013, 18:31   #12
azzzazzzelDEAN
Пользователь
 
Регистрация: 09.02.2011
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
И причем здесь ORDER BY? Делай вычисляемое в запросе и сортируй по нем. Вычисляемые на клиенте к запросу уже ни какого отношения не имеют
да я понимаю что связи нет с вычисляемым полем и запросом, так как сначала запрос а потом поле вычисляется?

вот в таком виде вся сортируется.
Цитата:
select *,(length + diameter) AS Calc From Cutter Order By length+diameter ASC
Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
попробуйте так написать
Код:
select AA.* from
  (select *,(length + diameter) AS CalcLenDia From Cutter) AA 
Order By AA.CalcLenDia
(будет работать, только если СУБД поддерживает вложенные запросы)
вписал этот запрос, помойму опять по length сортирует.

И еще вопрос не по теме немного. как сделать чтобы первичный ключь автоматически генерировался? если я не путаю это надо в менеджмент студио что то в настройках делать?

Последний раз редактировалось Stilet; 20.12.2013 в 21:07.
azzzazzzelDEAN вне форума Ответить с цитированием
Старый 20.12.2013, 20:35   #13
azzzazzzelDEAN
Пользователь
 
Регистрация: 09.02.2011
Сообщений: 25
По умолчанию

Цитата:
Сообщение от azzzazzzelDEAN Посмотреть сообщение
вписал этот запрос, помойму опять по length сортирует.
хотя я поторопился добавил поле CalcLenDia в edeting в dbgrid.
спасибо вроде работает, только сейчас попробую формулу усложнить

Цитата:
select AA.* from
(select *,(Round((mass*3.14*length* diameter/1000000),0)) AS CalcLenDia From Cutter) AA
Order By AA.CalcLenDia
формулу усложнил,но вот что то на это запрос нечего не выдает(пустой дбгрид), не хочет видать округлять, я когда пишу вместо 3.14 3ку то все нормально.

Последний раз редактировалось Stilet; 20.12.2013 в 21:07.
azzzazzzelDEAN вне форума Ответить с цитированием
Старый 20.12.2013, 21:08   #14
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Мдя... А все было бы так просто если бы вместо * просто приписал нужные поля
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.12.2013, 21:45   #15
azzzazzzelDEAN
Пользователь
 
Регистрация: 09.02.2011
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Мдя... А все было бы так просто если бы вместо * просто приписал нужные поля
я в БД не силен у меня полей 17 штук. пришлось бы все перечислять?
azzzazzzelDEAN вне форума Ответить с цитированием
Старый 20.12.2013, 22:28   #16
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

а как же, всегда надо, что такое 17.. сотнями перечисляют и не кашляют
eval вне форума Ответить с цитированием
Старый 20.12.2013, 23:24   #17
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
пришлось бы все перечислять?
Это делается один единственный раз. А ты лентяй раз брезгуешь даже этим. Более того это делается в помошью View. На стороне базы. А в клиенте уже эта вьюшка вызывается. Я понимаю что не всегда для вьюшки можно указать сортировку, но в клиенте как правило такое описывать нет смысла.
Например:
Код:
Create view MyView as (
select top 100 percent
 Filed1
 Field2
...
Field100500
from...
where...
order by 100500)
Соответственно вызов:
Код:
 sql.text:='select * from MyView';
 ...
И даст тот запрос, что описан в вьюшке со всей сортировкой и списком полей.
В этом случае * в запросе оправдывает себя.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка по первому полю Олька Жи Помощь студентам 3 29.05.2012 14:23
сортировка классов по полю? ololo-schoolboy PHP 0 25.03.2011 21:30
Сортировка таблицы по пустому полю chinara БД в Delphi 6 15.12.2010 09:22
Сортировка по полю [Smarik] SQL, базы данных 1 08.05.2009 20:27
Сортировка по полю! Lazio Общие вопросы C/C++ 3 17.03.2009 19:13