powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как выбрать в таблице отсутствующие номера
13 сообщений из 38, страница 2 из 2
Как выбрать в таблице отсутствующие номера
    #38944649
Prima_0101Добрый Э - Эх,

да, только где у меня в коде такой объект QXI7488.T ?
или он динамически генериться ?QXI7488 - это, скорее всего, имя схемы, базы данных или че там есть в твоей СУБД...
...
Рейтинг: 0 / 0
Как выбрать в таблице отсутствующие номера
    #38944650
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Prima_0101да, только где у меня в коде такой объект QXI7488.T ?


from t - вместо t пишешь QXI7488
where t1.n = t0.n + 1 - вместо n пишешь vkda76

Синтаксис SQL совсем не знаешь, возьми книжку какую-нибудь
...
Рейтинг: 0 / 0
Как выбрать в таблице отсутствующие номера
    #38944657
Prima_0101,

и, кстати, если у тебя и в самом деле DB/2, то свернуть портянку дыр в диапазоны можно гораздо проще, посредством оконных функций [ LEAD | LAG ] OVER()
...
Рейтинг: 0 / 0
Как выбрать в таблице отсутствующие номера
    #38944660
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pallarisfrom t - вместо t пишешь QXI7488
where t1.n = t0.n + 1 - вместо n пишешь vkda76


Хотя если qxi7488 - это не таблица, тогда я не прав
...
Рейтинг: 0 / 0
Как выбрать в таблице отсутствующие номера
    #38944683
PallarisPallarisfrom t - вместо t пишешь QXI7488
where t1.n = t0.n + 1 - вместо n пишешь vkda76


Хотя если qxi7488 - это не таблица, тогда я не правQXI7488 - это имя схемы данных. что-то типа аналога "базы данных". то есть в рамках одной общей базы в DB/2 могут быть разные схемы данных. такие своеобразные "логические контейнеры" для объектов отдельно-взятой системы - таблиц, индексов, процедур, функций и т.д. и т.п.. Если запрашиваем объекты текущей схемы, имя схемы можно не писать (просто пишем select * from T). если хотим обратиться к объектам другой схемы, то требуется указывать перед именем таблицы имя этой схемы (select * from QXI7488.T)...
...
Рейтинг: 0 / 0
Как выбрать в таблице отсутствующие номера
    #38944713
Добрый Э - Эхкак вариант - начни решать задачу поэтапно.
на первом этапе получи все диапазоны "дырок" в виде "начало дыры - кончало дыры"
на втором этапе сгенерируй строки от начала до кончала каждой дыры. по итогу, в рамках DB/2 первый этап делаем на LEAD (...) Over(order by ...), второй этап можно сделать на рекурсивном WITH.
Но это уже лучше обсуждать в профильной ветке ...
...
Рейтинг: 0 / 0
Как выбрать в таблице отсутствующие номера
    #38944716
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый Э - Эх,

ага, это я затупил. Но названия у схем и таблиц оригинальные, сразу разработчику понятно, что к чему :)

Модератор: Тема перенесена из форума "MySQL".
...
Рейтинг: 0 / 0
Как выбрать в таблице отсутствующие номера
    #38944764
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Prima_0101,

Добрый день.

Для MYTABLE (I INT)

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
with b (i, mx) as (
select min(i) i, max(i) mx
from mytable
  union all
select i+1, mx
from b
where i<mx
)
select i
from b
where not exists (select 1 from mytable a where a.i=b.i)
...
Рейтинг: 0 / 0
Как выбрать в таблице отсутствующие номера
    #38944825
Prima_0101
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pallaris,

да, это DB2 и SQL
Tаблица здесь qxi7488.vkda76
Столбец snr_num

но в данном случае методы MySQL должны по идее прокатить в SQL.
...
Рейтинг: 0 / 0
Как выбрать в таблице отсутствующие номера
    #38944912
Prima_0101,

Дело в том, что MySQL-ный диалект SQL-ля сильно скуднее в своих возможностях, чем его DB/2-шный аналог...
...
Рейтинг: 0 / 0
Как выбрать в таблице отсутствующие номера
    #38944915
Mark Barinstein,

При всем моём уважении, но зачем же генерить весь диапазон значений? Уж лучше делать это именно для дыр. В особенности, если дыр не много и они не сильно широкие.
...
Рейтинг: 0 / 0
Как выбрать в таблице отсутствующие номера
    #38944971
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый Э - Эх,

Это самое простое готовое решение, не требующее процедурной логики. Не будет устраивать производительность, можно и другими способами решить. И далеко еще не факт, что эти другие способы будут более производительными.
...
Рейтинг: 0 / 0
Как выбрать в таблице отсутствующие номера
    #38946104
Prima_0101
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Друзья, всем большое спасибо за участие и помощь.

пока решили воспользоваться тривиальными методами:

- находить первую дырку

SELECT (SNR_NUM +1) AS SNR_NUM_NEU
FROM QXI7488.VKDA76 A
AND NOT EXISTS (SELECT * FROM QXI7488.VKDA76 B
WHERE B.SNR_NUM = A.SNR_NUM + 1 )

FETCH FIRST ROW ONLY

- потом находим конец дырки

- потом в программе в цикле генерим недостающие номера


На досуге можно будет порассуждать о предложенных вами более красивых решениях.

Всем большое спасибо и хорошего дня.
...
Рейтинг: 0 / 0
13 сообщений из 38, страница 2 из 2
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как выбрать в таблице отсутствующие номера
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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