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

Вниз

Как вам такой запрос???   Найти похожие ветки 

 
Карелин Артем ©   (2002-11-15 11:02) [0]

Начинаю разбираться с хранимыми процедурами в FireBird. Для выбора сразу из двух таблиц сделал такое:
.....
RETURNS (
WID INTEGER,
WNAME VARCHAR (100),
...
кусь-кусь
...
BEGIN
FOR SELECT WID,WNAME,W_AID,WTYPE,WBIK,WINN,WOKONX,WOKPO,WDAT_REC,WFLAG_I,WTEL,WPRIM,WUL,WZIP,KOD_REG,KOD_INS,WPASS_NOM,WPASS_SER,WPASS_KEM
FROM WLAD where wflag_i<>3
INTO :WID,:WNAME,:W_AID,:WTYPE,:WBIK,:WINN,:WOKONX,:WOKPO,:WDAT_REC,:WFLAG_I,:WTEL,:WPRIM,:WUL,:WZIP,:KOD_REG,:KOD_INS,:WPASS_NOM,:WPASS_SER,:WPASS_KEM
DO
FOR SELECT AID,APARENT,ANAME,ADAT_REC,AFLAG_I
FROM ADRESS where aid=:w_aid and kod_reg=:kod_reg and kod_ins=:kod_ins
INTO :AID,:APARENT,:ANAME,:ADAT_REC,:AFLAG_I
DO
BEGIN
if (AFLAG_I<>3) then
SUSPEND;
END
END

Можно ли как-то оптимизировать такую процедуру?

Все работает, только не знаю как из второй таблицы выбирать только последнее значени, если select может выбрать несколько значений.
Как выбрать последнее значение из набора данных в хранимой процедуре???
З.Ы. Только функциональность должна оставаться такой же.


 
Romkin ©   (2002-11-15 11:40) [1]

вынеси suspend за цикл - вытолкнет последнюю строку


 
Карелин Артем ©   (2002-11-20 12:53) [2]

DO
BEGIN
if (AFLAG_I<>3) then
SUSPEND;
END
END

Ежели вынести if (AFLAG_I<>3) then SUSPEND; за следующий енд, то мой любимый EMS ругается на ошибку.
Ничего не придумал, кроме как между бегином и ендом вставить ничего не делающую строку типа id=:id. Но это некорректно с точки зрения логики.
Ваши комментарии......


 
Карелин Артем ©   (2002-11-20 13:27) [3]

Ничего не придумал, кроме как во втором селекте сделать сортировку в обратном порядке и выбирать только первую запись. Select top(1) from... А от второго For избавиться.


 
Victor_Cr ©   (2002-11-20 15:11) [4]

А по какому принципу выбираеться последняя запись (дата, уникальный код)?


 
Карелин Артем ©   (2002-11-20 15:14) [5]

Вообще-то когда по дате, когда по коду...
Тут это не показано...



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

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

Наверх




Память: 0.47 MB
Время: 0.018 c
1-27942
Xmen
2002-11-29 11:16
2002.12.09
Помогите справится с ListBox ом!


1-28128
ProNixp
2002-11-28 17:46
2002.12.09
Файл списков


14-28279
Cr@sh
2002-11-19 14:21
2002.12.09
Подскажите с чего начать...


14-28249
sad
2002-11-18 11:48
2002.12.09
Личная страничка на narod.ru


3-27900
lva
2002-11-21 16:08
2002.12.09
Проблема с BDE, а точнее с отображением дробной части