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

Вниз

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

 
vladimirS ©   (2003-02-14 09:48) [0]

имеется таблица:
CREATE TABLE REPL_LOG (
REGIONID integer,
SENDINGNO INTEGER);

в таблице находятся сл. данные (их на самом деле больше):
REGIONID SENDINGNO
1100 1
1100 2
1100 3
1100 4
1100 5
2200 1
2200 4
2200 6

В 2200 отсутствуют номера 2,3 и 5

Как составить запрос (не ХП!), который бы выводил недостающие номера и соответствующий regionID?


 
Johnmen ©   (2003-02-14 09:53) [1]

Запрос будет работать в многопользовательском варианте ?


 
vladimirS ©   (2003-02-14 09:55) [2]


> Запрос будет работать в многопользовательском варианте ?

нет


 
JibSkeart ©   (2003-02-14 10:37) [3]

можно попробовать Курсором ...
пробежать по REGIONID
и смотреть SENDINGNO

declare @SENDINGNO int,@REGIONID int,@i
SET @i = 0
SET NOCOUNT ON
declare test_cur cursor for select REGIONID,SENDINGNO from REPL_LOG order by REGIONID open test_cur
fetch next from test_cur into @REGIONID,@SENDINGNO
while (@@fetch_status <> -1)
begin
if (@@fetch_status <> -2)
begin
и сдесь делать сравнения
немного математики
end
fetch next from test_cur into @REGIONID,@SENDINGNO
end
close test_cur
deallocate test_cur


Ну это что первое в голову пришло ...
а что либо лутше придумать не смог
бошка трещит :((



 
Romkin ©   (2003-02-14 10:57) [4]

Ну-ну, вропрос-то по IB!!! :-)))
Я бы предложил создать вспомогательную таблицу с одним столбцом integer от 1 до N, N - максимальное число в SENDINGNO, можно по мере надобности триггером добавлять номера.
И потом запрос по двум таблицам, что-то вроде where not exists ...


 
perov ©   (2003-02-14 11:04) [5]

>есть таблица с полем cod integer, и знаем что в этом поле
>числа из определёного диапазона... как узнать цыфры которых
>нет ???

>Это придумал Бузаджи :
>-------------------------------------------------------------->select t.ID+1 ,Min(T1.ID)-1,Min(T1.ID)-t.ID-1 from
> TABLE1 T
>join TABLE1 T1 on T.id<T1.id
>where t.ID<=1000 and t1.ID<=1000
>group by t.ID
>having Min(T1.ID)-t.ID>1

>Получаем промежутки в которых удалены записи.
>В первой колонке будет начальный ID промежутка, во второй - >конечный.
>В третьей количество удаленных записей в промежутке.



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

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

Наверх




Память: 0.47 MB
Время: 0.021 c
1-5508
Sniffer
2003-02-20 21:27
2003.03.03
Размер BMP файла, что за глюки?


1-5517
Кило
2003-02-20 16:32
2003.03.03
Как передать в Rave Report картинку не из Базы Данных ?


4-5926
Igit
2003-01-15 10:54
2003.03.03
Как получить список заголовков всех окон


14-5856
Виктор
2003-02-14 00:33
2003.03.03
как заменить класс компонента?


14-5778
kostya2000
2003-02-10 22:00
2003.03.03
Кто на этом сайте меня уважает?