powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / HyTech, вывод значений таблицы не попадающих в диапазон значений другой таблицы.
18 сообщений из 18, страница 1 из 1
HyTech, вывод значений таблицы не попадающих в диапазон значений другой таблицы.
    #35540993
Spatzilla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть таблица1 , в ней есть столбцы: имя, фамилия, отчество, №талона и таблица2 , в ней столбцы: мин_№талона и макс_№талона (диапазон).
Необходимо выявить номера талонов и их владельцев которые не попадают в диапазон.
...
Рейтинг: 0 / 0
HyTech, вывод значений таблицы не попадающих в диапазон значений другой таблицы.
    #35543888
Spatzilla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вобщем нужен скрипт... Думаю для sql-гуру это не составит труда.
...
Рейтинг: 0 / 0
HyTech, вывод значений таблицы не попадающих в диапазон значений другой таблицы.
    #35566593
Spatzilla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Видимо задача невыполнима.
...
Рейтинг: 0 / 0
HyTech, вывод значений таблицы не попадающих в диапазон значений другой таблицы.
    #35580523
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SpatzillaНеобходимо выявить номера талонов и их владельцев которые не попадают в диапазон.думаю, придётся читать таблицу диапазонов столько раз, сколько записей в справочнике талонов
иначе говоря, прочитав одну запись справочника (№ талона, ФИО), надо прочитать все записи таблицы диапазонов
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
цикл чтения справочника

	цикл чтения таблицы диапазонов
		if №_талона >= min and №_талона <= max then
			ничего не делаем
		else
			создаём временную таблицу
		end if
	конец цикла

конец цикла
интересны и другие варианты, но два цикла, первое что пришло в голову
...
Рейтинг: 0 / 0
HyTech, вывод значений таблицы не попадающих в диапазон значений другой таблицы.
    #35580534
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да ещё
перед добавлением записи во временную/результирующую таблицу, надо проверить, нет ли там уже такой записи
...
Рейтинг: 0 / 0
HyTech, вывод значений таблицы не попадающих в диапазон значений другой таблицы.
    #35581400
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вариант SQL (пробовал в access-е без создания временной таблицы)

Код: plaintext
1.
2.
SELECT *
FROM employee
WHERE Not Exists (SELECT * FROM coupon WHERE employee.talon>=min_talon And employee.talon<=max_talon)=True;
справочник талонов и фамилий employee
talon FIO1 Иванов2 Петров3 Сидоров4 Бесфамильный
таблица диапазонов coupon
min_talon max_talon0 11 22 3
результатом будет Бесфамильный
...
Рейтинг: 0 / 0
HyTech, вывод значений таблицы не попадающих в диапазон значений другой таблицы.
    #35581892
YuG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
YuG
Гость
Код: plaintext
select * from T1 where F1 not in (select F1 from T2 where F1 between F_MIN and F_MAX);
...
Рейтинг: 0 / 0
HyTech, вывод значений таблицы не попадающих в диапазон значений другой таблицы.
    #35592715
Spatzilla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
klen
Код: plaintext
1.
2.
SELECT *
FROM employee
WHERE Not Exists (SELECT * FROM coupon WHERE employee.talon>=min_talon And employee.talon<=max_talon)=True;

В HyTech выдаёт ошибку:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
SQL_SYNT_STMT_END       -1016   /* Ожидался конец оператора */

Причина:
        Ошибка в операторе, возможно пропущен знак операции.

        select a from b where a = 5 and b = 7 c = 9
                                              │
                   здесь возникнет эта ошибка─┘

        Если при анализе встречается конструкция, которая не может
        служить продолжением уже проанализированной части SQL оператора,
        то интерпретатор эту конструкцию и считает лишней, хотя
        во ряде случаев просто что-то пропущено (вероятно, ключевое
        слово?).

        select a, b from table1 a = 2
                                │
                                └─ здесь возникнет эта ошибка
                                   потому, что в этом месте
                                   должно быть слово WHERE
...
Рейтинг: 0 / 0
HyTech, вывод значений таблицы не попадающих в диапазон значений другой таблицы.
    #35592728
Spatzilla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuG
Код: plaintext
select * from T1 where F1 not in (select F1 from T2 where F1 between F_MIN and F_MAX);

Выдаёт ошибку:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SQL_SYNT_CONSTANT       -1009   /* Ожидалась константа */

Причина:
        В соответствии с синтаксисом в операторе должна
        стоять константа, но ее там не оказалось.

        Такое сообщение появится и тогда, когда знак отношения,
        состоящий из нескольких символов, записан с пробелами
        внутри.

                select a, b from table1 where a < = 1
                                                  │
                          Здесь возникнет ошибка ─┘
(возле F_MIN)
...
Рейтинг: 0 / 0
HyTech, вывод значений таблицы не попадающих в диапазон значений другой таблицы.
    #35592759
Spatzilla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ктомуже поле F1 есть только в таблице T1 и выражение
Код: plaintext
select F1 from T2
выдаёт ошибку:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SQL_RTL_FLD_NOT_FOUND           -35 /* Поле не найдено */

Причина:
        В операторе используется поле, которое отсутствует
        в таблице HyTech.
        Имя может быть неправильно записано.

        Символы верхнего и нижнего регистров в именах
        полей различаются.

        Если в таблице есть поле 'Fio',
        а в программе используется обращение к этому полю
        как к 'fio', то произойдет ошибка.
...
Рейтинг: 0 / 0
HyTech, вывод значений таблицы не попадающих в диапазон значений другой таблицы.
    #35593296
YuG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
YuG
Гость
1. Естественно, что F_MIN и F_MAX должны быть константами, указывающими границы диапазона.
2. Ничто не мешает иметь поля с одинаковыми именами в разных таблицах, но если понятней так, то можно написать
Код: plaintext
select * from T1 where T1.F1 not in (select T2.F1 from T2 where T2.F1 between :F_MIN and :F_MAX);
Главное, чтобы поля T1.F1 и T2.F1 были одинакового размера.
...
Рейтинг: 0 / 0
HyTech, вывод значений таблицы не попадающих в диапазон значений другой таблицы.
    #35595058
Spatzilla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
таблица имеет имеено такой вид:
klen_...
talon FIO1 Иванов2 Петров3 Сидоров4 Бесфамильный
таблица диапазонов coupon
min_talon max_talon0 11 22 3
...
содержимое и размер таблиц к сожалению разный...
...
Рейтинг: 0 / 0
HyTech, вывод значений таблицы не попадающих в диапазон значений другой таблицы.
    #35596385
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это access 2000
запрос просто отбражает запись(и) не попавшие в диапазон
а форма добавляет запись(и) в Таблицу1
...
Рейтинг: 0 / 0
HyTech, вывод значений таблицы не попадающих в диапазон значений другой таблицы.
    #35596990
YuG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
YuG
Гость
Тогда предлагаю добавить в каждую таблицу по полю, допустим, B1 типа byte и значением в каждой записи равному 1.
и получится примерно следующее
Код: plaintext
1.
2.
3.
select * from employee where talon not in (
select talon from (
select a.talon, (a.talon >= b.min_talon) + (a.talon <= b.max_talon) as DLT from employee a, coupon b where a.B1 = b.B1)
where DLT =  2 );
...
Рейтинг: 0 / 0
HyTech, вывод значений таблицы не попадающих в диапазон значений другой таблицы.
    #35597241
Spatzilla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К сожалению таблицы править нельзя. Только мониторинг.
Без
Код: plaintext
where a.B1 = b.B1
выдаёт ошибку: -31 — Несвязанные таблицы
...
Рейтинг: 0 / 0
HyTech, вывод значений таблицы не попадающих в диапазон значений другой таблицы.
    #35598259
YuG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
YuG
Гость
Код: plaintext
1.
2.
3.
select * from employee where talon not in (
select talon from (
select a.talon, (a.talon >= b.min_talon) + (a.talon <= b.max_talon) as DLT from (select byte( 1 ) as B1,  talon from employee) a, (select byte( 1 ) as B1, min_talon, max_talon from coupon) b where a.B1 = b.B1)
where DLT =  2 );
...
Рейтинг: 0 / 0
HyTech, вывод значений таблицы не попадающих в диапазон значений другой таблицы.
    #35600226
Spatzilla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А вот этот скрипт работает как надо! Спасибо :)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
HyTech, вывод значений таблицы не попадающих в диапазон значений другой таблицы.
    #37950146
solonov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuG,
Помоги сравнить два поля из разных таблиц через like
Я написал скрип но он не прокатывает.

fix all;
select a.NUM as BL_NUM, a.NAME as BL_NAME,
b.NAME as NAME_35,
b.F_NOMER as F_NOMER35 ,
b.L_NOMER as L_NOMER35
from _BL a, _BOLLST_ b

where
a.NAME like b.NAME

;
results table '**_ttt';
select BL_NAME, NAME_35, F_NOMER35
//, BL_ID
from _ttt
;
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / HyTech, вывод значений таблицы не попадающих в диапазон значений другой таблицы.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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