Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.27;
Скачать: CL | DM;

Вниз

Не работает ORDER BY на VIEW   Найти похожие ветки 

 
Vemer ©   (2003-11-07 12:52) [0]

Здравствуйте.
Пытаюсь создать VIEW для склада, который брак показывает,
но почему-то при создании ругается на строку с Order By PIN. В Фароновском учебнике есть пример VIEW с ORDER, в общем не могу понять почему VIEW не создается. Может ему SQL 3 нужен или товарищ фаронов ошибается и ORDER нельзя в VIEW использовать? Помогите разобраться.

Код создания VIEW:

create view Brak_View ( PIN, Iname, Brak )
as
select PIN, Iname, Brak from Sklad
where Brak > 0
order by PIN


 
Sandman25 ©   (2003-11-07 12:56) [1]

View создается без Order By.

create view Brak_View ( PIN, Iname, Brak )
as
select PIN, Iname, Brak from Sklad
where Brak > 0;

А вот при извлечении из него уже можно сортировать.

select *
from brak_view
order by 1 desc


 
Vemer ©   (2003-11-07 13:03) [2]

Спасибо за ответ.

Фаронов - м..к, Форум - Rulez!!

Жаль, а так хотелось. Тогда проще Query в проге создать будет, который и Select и Order будет делать.


 
Sandman25 ©   (2003-11-07 13:08) [3]

View удобнее тем, что если изменится реализация (например, браком будет считаться, если (braK > 0) and (brak_allowed = 1)) то не надо будет исправлять программу. Или тем, что если в каждом query нужно фильтровать по тому же условию, то устаешь, и тогда лучше create view ne_brak :)
Но в данном случае похоже, действительно, написать from sklad легче.


 
MsGuns ©   (2003-11-07 13:52) [4]

А я использую вьшки в двух случаях:

1. Сложный запрос из разных таблиц, при этом алгоритмика выборки может меняться и достаточно часто. В этом случае предпочтительнее поменять вью в метаданных, чем лазать во все проги на всех компах, где исп-ся данная выборка

2. Получение предварительного датасета для последующего извлечения из него клиентским запросом по некоторым своим (клиентским опять же) критериям. Что-то вроде "промежуточного звена"


 
Sandman25 ©   (2003-11-07 15:17) [5]

3. Разграничение доступа.
3a. Клиент видит только то, что относится к нему
create view viw_who_am_i as select * from all_user where login=USER
3b. Клиент что-то видит, только если у него есть контрольная точка.
create view viw_all_users as select * from all_users where exists (select ...)

4. Динамическое использование. Иногда нужно использовать либо одну связку таблиц, либо другую, в зависимости от запроса пользователя. Легче изменить from viw1 на from viw2, чем from table1, table2 where table1.id=table2.id
на from table3, table4 where table3.id=table4.id and not exists (select * from table5 ...)


 
Johnmen ©   (2003-11-07 23:15) [6]

>Vemer ©

Видимо умение (желание) посмотреть в прилагаемую к IB6 документацию тебе несвойственно... :( Что печально...
Иначе не было бы таких !!! вопросов...
A SELECT statement clause cannot include the ORDER BY clause.


 
VID ©   (2003-11-08 10:41) [7]

Johnmen: попроще, человека просто по всей видимости сбило с толку то, что в книге популярного автора как раз-таки "ОРДЕР БАЙ клауз" :) вполне используется


 
Vemer ©   (2003-11-08 10:56) [8]

> Jormen
К Yaffil Personal документация не прилагается.
А IBserver Open Source 6.0 я просто переписал у кого-то.
Что есть, тем и пользуемся. Фаронов у нас тоже недешев.



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

Текущий архив: 2003.11.27;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
14-90076
k-man
2003-11-04 20:10
2003.11.27
Max Payne 2:The Fall of Max Payne


11-89798
Bartov
2003-03-19 10:52
2003.11.27
Как в KOL организовать AllocateHWnd и DeallocateHWnd?


3-89697
Layner
2003-11-10 15:44
2003.11.27
Подскажите, как сделать запрос на сохранение, если запись была


1-89993
CAHEK
2003-11-17 13:08
2003.11.27
Ошибка работы с датами?


4-90163
Юрий Ж.
2003-10-01 16:02
2003.11.27
Работа с ресурсами...