Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Сравнение массивов

v7: Сравнение массивов
Я
   Eeakie
 
28.12.18 - 13:30
Добрый день. Нужно найти первое незанятое число в массиве.

Например, есть массив {1,2,4}. Нужно сравнить его с массивом {1,2,3,4,5} и дать первое незанятое число. В этом случае 3.

Первый массив делается селектом из БД. Второй, я полагаю, надо делать через временную таблицу циклом. Максимум значений будет 99999. Как проще организовать сравнение? Может в SQL есть что-то простое?
 
 
   ДенисЧ
 
1 - 28.12.18 - 13:32
Загнать оба массива в скуль и full join (или left, если у тебя один гарантированно полный).
Где NULL - там дырка
   Eeakie
 
2 - 28.12.18 - 13:34
(1) Логично. Пробую.
   Mikeware
 
3 - 28.12.18 - 13:41
если селектом из БД - значит, стоит 1спп. если есть 1спп - то в ей есть http://www.1cpp.ru/docum/icpp/html/IndexedTable.html#leftjoin
   Mikeware
 
4 - 28.12.18 - 13:41
ну, еще в ней есть установитьФильтр, и все такое
   Eeakie
 
5 - 28.12.18 - 14:12
Хм. А чем в 1сине сделать запрос?

if object_id('tempdb.dbo.#numbers') is null create table #numbers(n int)

declare @n int
set @n = 1

while @n < 100
    begin
        insert into #numbers values (@n)

        set @n = @n + 1
    end

select * from #numbers

drop table #numbers


Через RecordSet 1с в ТЗ пусто. Напрямую из SQL всё нормально выполняется.
   Mikeware
 
6 - 28.12.18 - 14:23
(5) дык он у тебя результат по следнего возвращает

Список тем форума
  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует