powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Local SQL - отбор неиспользованных записей
8 сообщений из 8, страница 1 из 1
Local SQL - отбор неиспользованных записей
    #33013275
SCORPION Z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть две таблицы:
1-я "Данные по сотрудникам",
2-я "Табель раб. времени"

Требуется из 1-й отобрать те записи (сотрудников),
для которых нет записей во 2-й таблице.
Т.е. которые не включены в табель. Как можно это реализовать?
...
Рейтинг: 0 / 0
Local SQL - отбор неиспользованных записей
    #33013299
maxtar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
select * from "Данные по сотрудникам" where "Поле_с_сотрудником" not in (select поле_с_сотрудникомвовторойтаблице from "Табель раб. времени")/

...
Рейтинг: 0 / 0
Local SQL - отбор неиспользованных записей
    #33013544
SCORPION Z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сейчас осмыслю, проверю, а затем отвечу.
...
Рейтинг: 0 / 0
Local SQL - отбор неиспользованных записей
    #33013589
maxtar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забавно... Неторопливо так... ))))
...
Рейтинг: 0 / 0
Local SQL - отбор неиспользованных записей
    #33013820
SCORPION Z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да тут просто оторвали по другим делам. Я ведь на работе!
А за код спасибо - всё заработало, как надо! И главное решение то
ведь очень простое. Ну а я не настолько знаю SQL, как другие.

И ещё - возможно ли оптимизировать этот запрос:

Код: plaintext
1.
2.
3.
4.
5.
"SELECT V.TAB_N, V.FIO, V.PROF, U.NAIMEN \
FROM 'VODILA.DBF' V, 'UCHASTOK.DBF' U \
WHERE (V.N_UCH = U.N_UCH) AND (V.TAB_N <> '0') \
AND ((V.N_UCH = '"+nuch+"') OR (V.N_UCH = '00')) \
AND V.FIO NOT IN (SELECT T.FIO FROM '"+tbl+"' T) \
ORDER BY V.FIO"

или тут и так ничего лишнего и повторяющегося?
...
Рейтинг: 0 / 0
Local SQL - отбор неиспользованных записей
    #33014505
Фотография Lelikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SCORPION ZДа тут просто оторвали по другим делам. Я ведь на работе!
А за код спасибо - всё заработало, как надо! И главное решение то
ведь очень простое. Ну а я не настолько знаю SQL, как другие.

И ещё - возможно ли оптимизировать этот запрос:

Код: plaintext
1.
2.
3.
4.
5.
"SELECT V.TAB_N, V.FIO, V.PROF, U.NAIMEN \
FROM 'VODILA.DBF' V, 'UCHASTOK.DBF' U \
WHERE (V.N_UCH = U.N_UCH) AND (V.TAB_N <> '0') \
AND ((V.N_UCH = '"+nuch+"') OR (V.N_UCH = '00')) \
AND V.FIO NOT IN (SELECT T.FIO FROM '"+tbl+"' T) \
ORDER BY V.FIO"

или тут и так ничего лишнего и повторяющегося?

Вроде бы нет, но здесь не совсем понятна структура таблиц, в том смысле, что некоторые вещи могут быть неоптимальны в структуре. Меня например нули настораживают немного, может быть просто потому, что мне не известен их физтческий смысл.
...
Рейтинг: 0 / 0
Local SQL - отбор неиспользованных записей
    #33014775
CruelGenius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SCORPION ZДа тут просто оторвали по другим делам. Я ведь на работе!
А за код спасибо - всё заработало, как надо! И главное решение то
ведь очень простое. Ну а я не настолько знаю SQL, как другие.

И ещё - возможно ли оптимизировать этот запрос:

Код: plaintext
1.
2.
3.
4.
5.
"SELECT V.TAB_N, V.FIO, V.PROF, U.NAIMEN \
FROM 'VODILA.DBF' V, 'UCHASTOK.DBF' U \
WHERE (V.N_UCH = U.N_UCH) AND (V.TAB_N <> '0') \
AND ((V.N_UCH = '"+nuch+"') OR (V.N_UCH = '00')) \
AND V.FIO NOT IN (SELECT T.FIO FROM '"+tbl+"' T) \
ORDER BY V.FIO"

или тут и так ничего лишнего и повторяющегося?

А вот сразу вопрос в лоб.
А как ты выполняешь этот запрос? через ODBC? А про оптимизацию ничего не могу сказать
...
Рейтинг: 0 / 0
Local SQL - отбор неиспользованных записей
    #33015054
SCORPION Z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LelikkВроде бы нет, но здесь не совсем понятна структура таблиц, в том смысле, что некоторые вещи могут быть неоптимальны в структуре. Меня например нули настораживают немного, может быть просто потому, что мне не известен их физтческий смысл.

Да '00' -'09' - используются чтобы длина кода подразделения/участка
была одинаковой для всех участков (далее коды идут 10-99). Например
'00' - это участок 'не определен', не знаю правда зачем он потребуется. Наверное на случай, если временно для какого-то сотрудника неизвестна такая информация. Затем код участка используется в формировании уникального кода по каждому сотруднику и поэтому важно, чтобы длина кода
была постоянной.

CruelGenius А вот сразу вопрос в лоб.
А как ты выполняешь этот запрос? через ODBC? А про оптимизацию ничего не могу сказать

Через BDE.
Код: plaintext
1.
2.
Query1->Close();
Query1->SQL->Text = "....";
Query1->Open();
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Local SQL - отбор неиспользованных записей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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