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

Вниз

Сделать выборку пропущенных номеров из БД на SQL   Найти похожие ветки 

 
Radix   (2006-01-26 08:36) [0]

В общем имеется таблица, где в одном из полей (num) хранится последовательность чисел (неких номеров) 1,2,3,4,6,7,10,11,... Среди них могут быть пропущенные (как в примере). Можно ли на sql (Firebird) сделать выборку пропущенных номеров (по примеру - 5,8,9...) ???


 
ЮЮ ©   (2006-01-26 08:42) [1]

Если устроит 5, 8 (без 9), то

SELET t0.ID + 1 FROM
 table t0
 LEFT JOIN t1 ON (t0.ID + 1) = t1.Id
WHERE t1.ID IS NULL


 
Radix   (2006-01-26 08:44) [2]

Спасибо ЮЮ! Сейчас попробую!


 
Digitman ©   (2006-01-26 10:32) [3]

create procedure MissingNumbers
returns (ANumber INTEGER)
AS
declare variable TempNumber INTEGER;
begin
 ANumber = 0;
 for
  select NumField
  from SomeTable
  order by NumField
  into :TempNumber
 do begin
   ANumber = ANumber + 1;
   while (ANumber < TempNumber) do
    begin
     suspend;
     ANumber = ANumber + 1;
    end;
 end;  
end;

..

SELECT * FROM MissingNumbers


 
Johnmen ©   (2006-01-26 10:52) [4]

Классический пример :)
SELECT T1.ID+1, MIN(T2.ID)-1, MIN(T2.ID)-T1.ID-1
FROM TABLE T1
JOIN TABLE T2 ON T1.ID<T2.ID
GROUP BY T1.ID
HAVING MIN(T2.ID)-T1.ID>1
Получаем промежутки в которых отсутствует ID.
В первой колонке будет начальный ID промежутка, во второй - конечный.
В третьей количество отсутствующих ID в промежутке.



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

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

Наверх




Память: 0.47 MB
Время: 0.073 c
3-1134382045
Devil2005
2005-12-12 13:07
2006.02.12
JPEG + Access + Delphi


3-1134786462
Ольга
2005-12-17 05:27
2006.02.12
Генератор случайных чисел


2-1138370941
49 Cent
2006-01-27 17:09
2006.02.12
Подскажите как отправить данные из Dbgrid через Outlook?


3-1134735715
rwg
2005-12-16 15:21
2006.02.12
Связывание таблиц


15-1138001364
0bsid
2006-01-23 10:29
2006.02.12
как лучше сделать автообновление своей программы?