|
|
|
| Есть таблица, в которой проставлены номера по возрастанию от 1 до N. Но иногда ряд может быть разорван и какого-то числа может не хватать. Например: 1 2 3 6 7 8
Отсутствуют 4 и 5. Как при поиске остановиться на наименьшем пропущеном-на 4 ? | |
|
| |
|
|
|
|
SELECT TOP 1 t1.NN FROM t1
WHERE NOT EXISTS (SELECT * FROM t1 AS t2 WHERE t2.NN = t1.NN+1)
ORDER BY t1.NN;
|
| |
|
| |
|
|
|
| афигеть супер
вычисляет последний элемент непрерывной цепочки. | |
|
| |
|
|
|
|
| самое простое
set rs=dbs.Openrecorsdset ("select * from Tabla order by Nomer_po_poradku")
Npp=rs!Nomer_po_poradku
rs.movenext
do while rs.eof=false
if npp-rs!Nomer_po_poradku<>1 then
истерика!!!!
else
нет истерики!!!!!
end if
rs.movenext
loop
|
как сделать запросом - не знаю, возможно вычислять для каждой записи ее физический номер в запросе и сравнивать ее с №п/п - если есть равны друг другу то не выводим, если не равны выводим запись на экран | |
|
| |
|
|
|
| Спасибо, сейчас попробую. | |
|
| |