powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Подскажите вывод свободных номеров
7 сообщений из 7, страница 1 из 1
Подскажите вывод свободных номеров
    #36600187
kfvth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здраствуйте такая ситуация есть таблица A в ней есть поле тн(табельный номер), мне нужно осуществить функцию вывода на экран свободных табельных номеров т.е. к примеру есть работник с табельным номером 1 а у другого 3, на экран надо вывести свободные номера в диапозоне 1-100 те получить 2,4,5,6, и т д плиз помогите
...
Рейтинг: 0 / 0
Подскажите вывод свободных номеров
    #36600228
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kfvthЗдраствуйте такая ситуация есть таблица A в ней есть поле тн(табельный номер), мне нужно осуществить функцию вывода на экран свободных табельных номеров т.е. к примеру есть работник с табельным номером 1 а у другого 3, на экран надо вывести свободные номера в диапозоне 1-100 те получить 2,4,5,6, и т д плиз помогите
Самой быстрое, это иметь таблицу (AllNumbers), которая имела бы одно поле и кол-во записей = максимальному табельному номеру. Тогда можно простейщим запросом найти все записи, которые пропущены в вашей таблицы (A), но есть в AllNumbers. В T-SQL это можно легко сделать с помощью оператора EXCEPT, но а в VFP через LEFT JOIN между AllNumbers и вашей таблицей A и в WHERE проверка на NULL поля номера (тн) из таблицы A
С уважением, Алексей
...
Рейтинг: 0 / 0
Подскажите вывод свободных номеров
    #36600251
kfvth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Aleksey-K,

Алексей а можно если не очень трудно примерно как код будет выглядеть, и с Allnumbers не получится у меня в таблице много других полей, надо сделать как нибудь чтобы выводились просто пустые номера
поля тн, к примеру я задал диапозон от 1000 до 2000 и он вывел 1000 1001 и тд а если где нить попалась запись то не выводить это поле Заранее спасибо за помощь
...
Рейтинг: 0 / 0
Подскажите вывод свободных номеров
    #36600301
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
* Курсор со сплошной нумерацией в интересующем диапазоне
create cursor AllNumber (nextNum I)
for m.lnI =  1000  to  2000 
    insert into AllNamber (nextNum) values (m.lnI)
endfor

* Из курсора беру только те номера, которых нет в рабочей таблице
select nextNum;
from AllNumber ;
where not exists(select 'x' from MyTab where MyTab.num = AllNumber.nextNum)

Чтобы не создавать курсор каждый раз, проще завести специальную служебную таблицу, как и сказал Алексей.
...
Рейтинг: 0 / 0
Подскажите вывод свободных номеров
    #36600482
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМ
Код: plaintext
1.
2.
3.
4.
* Из курсора беру только те номера, которых нет в рабочей таблице
select nextNum;
from AllNumber ;
where not exists(select 'x' from MyTab where MyTab.num = AllNumber.nextNum)

Или другой вариант:
Код: plaintext
1.
SELECT a.nextNum FROM AllNumber a LEFT JOIN MyTab ON a.nextNum =  MyTab.num ;
WHERE  ISNULL(MyTab.num)
С уважением, Алексей
...
Рейтинг: 0 / 0
Подскажите вывод свободных номеров
    #36600506
kfvth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем огромное спасибо выручили
...
Рейтинг: 0 / 0
Подскажите вывод свободных номеров
    #36601980
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"...Самой быстрое, это иметь таблицу (AllNumbers) ..."
Можно вместо таблицы использовать номера записей(recno()) этой же таблицы и выводить несовпадения номера записи и порядкового номера...
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Подскажите вывод свободных номеров
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]