Форум: "Базы";
Текущий архив: 2004.08.22;
Скачать: [xml.tar.bz2];
ВнизПроблема с запросом(хп) Найти похожие ветки
← →
Domkrat © (2004-07-27 14:56) [0]Ув. Мастера. Подскажите пожалуйста.
Таблица: MOVE
ID LS OLDVALUE NEWVALUE MOVEDATE
1 1 Петя Коля
2 1 Коля Саша
3 1 Саша Игорь
4 1 Игорь Вася 01.01.2004
Требуется одна строка
ID LS OLDVALUE NEWVALUE MOVEDATE
1 Петя Вася 01.01.2004
← →
Sandman25 © (2004-07-27 15:01) [1]select ls,
(select oldvalue from move m1 where m.ls=m1.ls and
id=(select min(id) from move m2 where m2.ls=m.ls)),
(select newvalue from move m1 where m.ls=m1.ls and
id=(select max(id) from move m2 where m2.ls=m.ls))
from move m
group by ls
← →
Sandman25 © (2004-07-27 15:03) [2]Лучше написать ХП с
select min(id), max(id), ls
from move
group by id
и в цикле перебирать получаемые значения и извлекать оставшиеся значения
← →
Domkrat © (2004-07-27 15:07) [3]Спасибо большое, но и первый запрос довольно быстро сработал.
Попробую написать хп.
← →
Sandman25 © (2004-07-27 15:08) [4]>Спасибо большое, но и первый запрос довольно быстро сработал.
Это заслуга оптимизатора, он оказался на высоте.
← →
dimds (2004-07-27 15:09) [5]а прынцип выборки какой?
← →
Domkrat © (2004-07-27 15:14) [6]Ведется движение абонентов в течении месяца, и требуется
взять только начальные и конечные значения определенных полей
для составления отчетности.
← →
dimds (2004-07-27 15:23) [7]select pole1...poleN where id=(select min(id) from table) into
[outparams];
select pol1....polen where id=(select max(id) from table) into
[outparams];
suspend;
← →
Sandman25 © (2004-07-27 15:24) [8][7] dimds (27.07.04 15:23)
Во вложенных select должно быть where.
← →
dimds (2004-07-27 15:26) [9]ну это примерный вариант разумеется нужные условия и выходные параметры нужно подставить
← →
Sandman25 © (2004-07-27 15:28) [10]понятно
← →
Domkrat © (2004-07-27 15:31) [11]Вариант Sandman25 © (27.07.04 15:03) [2] удовлетворяет всем условиям.
Всем спасибо.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.08.22;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.034 c