powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Выборка из таблицы данных, в результате которой будет информация про отсутствующие данные
17 сообщений из 17, страница 1 из 1
Выборка из таблицы данных, в результате которой будет информация про отсутствующие данные
    #39927943
ARTEM_ZPC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Прошу помочь сделать выборку из таблицы, в результате которой будет информация про отсутствующие данные:
Есть список номеров документов: '20342174','20341700','20341113','20340870','20342024'
Необходимо сделать запрос в таблицу и вывести информацию про эти номера, только если такой документ отсутствует - выводить информацию в запросе что такой отсутствует
Например, если в таблице есть документы только с номерами '20342174','20341700' - то обычный запрос
select num, addr
from tbl_docs
where num in ('20342174','20341700','20341113','20340870','20342024')
вернет результат:
20342174 Пушкина 54/3
20341700 Лермонтова 12

а мне надо, чтоб запрос вернул результат:
20342174 Пушкина 54/3
20341700 Лермонтова 12
20341113
20340870
20342024
...
Рейтинг: 0 / 0
Выборка из таблицы данных, в результате которой будет информация про отсутствующие данные
    #39927945
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Временная таблица + левый джоин.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Выборка из таблицы данных, в результате которой будет информация про отсутствующие данные
    #39927946
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
not in ()
not exists ()
left join ... on

смотря что именно надо.
...
Рейтинг: 0 / 0
Выборка из таблицы данных, в результате которой будет информация про отсутствующие данные
    #39927967
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ARTEM_ZPC,

6686267 - left join от этой процедуры к tbl_docs. И фсио.
...
Рейтинг: 0 / 0
Выборка из таблицы данных, в результате которой будет информация про отсутствующие данные
    #39927973
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

номера документов есть в какой-то справочной таблице, не из воздуха же они.
Тогда никаких временных, просто documents left join info on... where documents.num in ...
...
Рейтинг: 0 / 0
Выборка из таблицы данных, в результате которой будет информация про отсутствующие данные
    #39927978
ARTEM_ZPC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Номера мне присылают в XLS и даже в скринах.
left join tbl_docs не подходит, т.к. таких номеров в таблице нет.
Временная таблица - можно, но думал может как-то проще можно?
может массив строк...
...
Рейтинг: 0 / 0
Выборка из таблицы данных, в результате которой будет информация про отсутствующие данные
    #39927984
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ARTEM_ZPC
left join tbl_docs не подходит, т.к. таких номеров в таблице нет.

Что сие значит?
...
Рейтинг: 0 / 0
Выборка из таблицы данных, в результате которой будет информация про отсутствующие данные
    #39927989
ARTEM_ZPC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
временную таблицу всё равно заполнить сначала надо, а если количество номеров >1000 ?
если бы еще в IBExpert можно было вставить строки (CNTRL+V) в столбец таблицы из XLS столбца, а так insert что ли писать 1000 раз или експорт делать?
...
Рейтинг: 0 / 0
Выборка из таблицы данных, в результате которой будет информация про отсутствующие данные
    #39927993
ARTEM_ZPC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ёёёёё,
ну если нет некоторых номеров в таблице tbl_docs, чем мне поможет left join?

Например:
select t.num, t.addr
from tbl_docs t
left join tbl_docs t2 on t2.id=t.id
where
t2.num in ('20342174', '20341700','20341113','20340870','20342024')
...
Рейтинг: 0 / 0
Выборка из таблицы данных, в результате которой будет информация про отсутствующие данные
    #39928009
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ARTEM_ZPCа если количество номеров >1000 ?

Значит остаётся выбор: использовать пальцы или мозг. Простенькая формула сделает из
эксель-столбца скрипт вставки. Простенький скрипт на VBA - сразу вставит их в базу и
получит результат.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Выборка из таблицы данных, в результате которой будет информация про отсутствующие данные
    #39928017
ARTEM_ZPC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,
Я понял, Спасибо.
...
Рейтинг: 0 / 0
Выборка из таблицы данных, в результате которой будет информация про отсутствующие данные
    #39928110
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ARTEM_ZPC
ёёёёё,
ну если нет некоторых номеров в таблице tbl_docs, чем мне поможет left join?

Например:
select t.num, t.addr
from tbl_docs t
left join tbl_docs t2 on t2.id=t.id
where
t2.num in ('20342174', '20341700','20341113','20340870','20342024')

Я разве это написал?
ёёёёё
ARTEM_ZPC,

6686267 - left join от этой процедуры к tbl_docs..
...
Рейтинг: 0 / 0
Выборка из таблицы данных, в результате которой будет информация про отсутствующие данные
    #39928245
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ARTEM_ZPC
временную таблицу всё равно заполнить сначала надо, а если количество номеров >1000 ?
если бы еще в IBExpert можно было вставить строки (CNTRL+V) в столбец таблицы из XLS столбца, а так insert что ли писать 1000 раз или експорт делать?


Вот как раз когда количество номеров большое - тогда применение временной таблицы становится все более интересным.
Делаешь в базе временную таблицу.

Делаешь НА КЛИЕНТЕ процедурку:

delete from temp;
for список номеров
do insert into temp

И потом уже делаешь запрос с left join.

Несмотря на кажущееся обилие "лишних" операций, работает на удивление быстро.
Я у себя это дело применяю, и использование временной таблицы обычно ускоряет общее время выполнения и сильно улучшает прозрачность кода.
...
Рейтинг: 0 / 0
Выборка из таблицы данных, в результате которой будет информация про отсутствующие данные
    #39928407
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraks,

Разве процедура с delete-insert будет быстрее чем процедура, которая из строки с разделителями выдает список ID как написано здесь?
ёёёёё
ARTEM_ZPC,

6686267 - left join от этой процедуры к tbl_docs. И фсио.


2. Если уж так хочется таблицу, по почему не временную?
Вместо delete (что может вызвать deadlock) вставлять во временную таблицу с дополнительным полем "ID сессии"
...
Рейтинг: 0 / 0
Выборка из таблицы данных, в результате которой будет информация про отсутствующие данные
    #39928412
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
19.02.2020 13:19, Шавлюк Евгений пишет:
> Вместо delete (что может вызвать deadlock) вставлять во временную таблицу с дополнительным полем "ID сессии"

данные во временной таблице видны только в рамках "сессии".
другие "сессии" видят только то, что напихали сами.
не надо дуть на воду.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Выборка из таблицы данных, в результате которой будет информация про отсутствующие данные
    #39928422
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий,

Да, я решил что таблица в предложении fraks настоящая. Не временная
...
Рейтинг: 0 / 0
Выборка из таблицы данных, в результате которой будет информация про отсутствующие данные
    #39928574
ARTEM_ZPC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ёёёёё
ARTEM_ZPC,

6686267 - left join от этой процедуры к tbl_docs. И фсио.


Спасибо, процедура действительно помогла получить список в удобном виде.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Выборка из таблицы данных, в результате которой будет информация про отсутствующие данные
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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