powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Вывод сотрудников, которые сейчас не в отпуске, то есть работают.
18 сообщений из 18, страница 1 из 1
Вывод сотрудников, которые сейчас не в отпуске, то есть работают.
    #39235941
Elenka5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Таблица "Сотрудники" содержит поля (id_Сотрудника, Фамилия, Имя, Отчество). Таблица "ОтпускСотрудников" содержит поля (id_Отпуска, id_Сотрудника, НачалоОтпуска, КонецОтпуска). Таблица "Сотрудники" и таблица "СотрудникОтпуск" саязаня связью "один ко многим" И мне нужно вывести список всех сотрудников, у которых сейчас нет отпуска.
Причём, подразумевается, что нужно вывести тех сотрудников которые сейчас работают, то есть либо у них был отпуск, либо будет, либо вообще в таблице "ОтпускСотрудников" никогда не было записи об отпуске.
...
Рейтинг: 0 / 0
Вывод сотрудников, которые сейчас не в отпуске, то есть работают.
    #39235949
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elenka5....Причём, подразумевается, что нужно вывести тех сотрудников которые сейчас работают, то есть либо у них был отпуск, либо будет, либо вообще в таблице "ОтпускСотрудников" никогда не было записи об отпуске. короче всех из таблицы "сотрудники"
...
Рейтинг: 0 / 0
Вывод сотрудников, которые сейчас не в отпуске, то есть работают.
    #39235960
Elenka5,

милая Хеленка! Попытайся еще раз изложить вышеизложенное :) в контексте СУБД и в принятой терминолгии. Уверен, вопросы отпадут сразу. Тем более, что третью таблицу ( "СотрудникОтпуск" ) народ ва-аще в упор не видел... Оперативная вводная?

Я бы сформулировал бы так - попадает ли запрошенная дата в диапазон отпуска сотрудника, если таковой указан.

А вот как вычленить - указан ли он? Два поля... Бабы-дуры могут заполнить лишь одно, со слепого глаза... Какие ограничения наложены на эти поля? Как обозначить критерий, если эти поля не обязательны к заполнению и подразумевают как отсутствие значений, так и значения, выходящие за разумные рамки актуальных дат... ну и много всего прочего...

Про даты см.:
19150473

Но особенно бесит вот это: "никогда не было записи об отпуске" ...
Дочка, милая - это СУБД. И слово "запись" - зарезервировано ВО ВСЕХ КОНТЕКСТАХ, кроме единственного - ЗАПИСЬ БАЗЫ ДАННЫХ!

А пока - музыкальная пауза, Хеленка :)
(хэ или эх, как хочешь, не читается в большинстве языков. Почему у них и нет в принципе слова "МЕЛ", которое непонятно чем написано на заборе :)
В этом нам помогут браты-демократы :) Это которые "только чай" . Спасибо, Владимир Семеныч :)


YouTube Video
...
Рейтинг: 0 / 0
Вывод сотрудников, которые сейчас не в отпуске, то есть работают.
    #39235962
sdkuкороче всех из таблицы "сотрудники"

хрен там. Я, тоже, вначале было кратко отписался :).
Потом прорвало лишь :)
.
...
Рейтинг: 0 / 0
Вывод сотрудников, которые сейчас не в отпуске, то есть работают.
    #39235983
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
запрос
Код: vbnet
1.
2.
3.
SELECT Сотрудники.Фамилия, Сотрудники.Имя, Сотрудники.Отчество, ОтпускСотрудников.НачалоОтпуска, ОтпускСотрудников.КонецОтпуска
FROM Сотрудники INNER JOIN ОтпускСотрудников ON Сотрудники.id_Сотрудника = ОтпускСотрудников.id_Сотрудника
WHERE (((my([НачалоОтпуска],[ОтпускСотрудников]![КонецОтпуска]))=-1));

функция (или соответствующее выражение в запросе)
Код: vbnet
1.
2.
3.
4.
5.
Function my(st, fin)
If Date >= st And Date <= fin Then
my = -1
End If
End Function
...
Рейтинг: 0 / 0
Вывод сотрудников, которые сейчас не в отпуске, то есть работают.
    #39235990
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
функция должна быть такой:
Код: vbnet
1.
2.
3.
4.
5.
Function my(st, fin)
If (Date >= st And Date <= fin) Or (IsNull(st) And IsNull(fin)) Then
my = -1
End If
End Function
...
Рейтинг: 0 / 0
Вывод сотрудников, которые сейчас не в отпуске, то есть работают.
    #39235992
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тьфу ты-еще не все: в запросе не INNER JOIN а LEFT JOIN
Вот теперь все
...
Рейтинг: 0 / 0
Вывод сотрудников, которые сейчас не в отпуске, то есть работают.
    #39236001
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Function my(st, fin)
If Date >= st And Date <= fin Then
my = "в отпуске"
ElseIf  Date > fin Then
my = "использован"
ElseIf  Date < fin Then
my = "запланирован"
Else
my = "предоставить"
End If
End Function
...
Рейтинг: 0 / 0
Вывод сотрудников, которые сейчас не в отпуске, то есть работают.
    #39236002
sdku,

да не рви ты так сердце... Написал чушь, так и начни с того, что "Пардоньте, обмишурился", а потом умняк гони.... Где у тебя таблица "СотрудникОтпуск"?

Бесит это околоофисный планктон. Думает, что написал с подсказкой "Здравствуй, мир!", так и вся колода уже на руках?

По уму - сотрудница, флаг отпуска (избыточность заклаыдваем сознательно), флаг подтверждения ответсвтенным за нее сутером, и прочие флаги... Ну, битовая маска, по уму-то... Отпуск ведь м.б. формальным, бухгалтерским, а тетка-то пашет в полный рост и на нее и ее подпись в бумагах (а и такое может быть - м.о.л. за расходный материал как то - презики, тампоны и пр.) весь остальной планктон расчитывает и на проходной ее должны впустить-выпустить. Не? Далее. У каждой сотрудницы отпуск не один может быть. Так? Значит возникает кросс - id сотрудницы, ид отпуска. Вот такая СУБД борделя получается... Усложним задачу через лунные циклы и просто переработку, за износ аппарата, компенсируемый через дополнительный отпуск. Отпуск аппарата в вольное плавание :)

Бесит эта отрванность от реалий, которые можно и нужно было заложить в проект, а не городить потом костыли....

Ты заколебал. Последние 100500 тысяч твоих постов - из трех минимум состоят. Ты уж не суйся, а? Или суйся, но уж наверняка. А то на каждом шаге оговариваешься, исправляешься, если уж не совршенную чушь несешь... "Тут - играть, тут - не играть, тут - жирное пятно, рыбу заворачивали..."

Самому-то не ая-яй? Я бы зарекся писать в паблик на уровне консультанта, после хоть пары таких косяков....
.
...
Рейтинг: 0 / 0
Вывод сотрудников, которые сейчас не в отпуске, то есть работают.
    #39236004
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
капча-пироги-я-не-робот,
если что-то сильно бесит-выпей успокоительное и побейся головой об стенку
(чего хочет ТС понять весьма трудно )
...
Рейтинг: 0 / 0
Вывод сотрудников, которые сейчас не в отпуске, то есть работают.
    #39236011
sdkuесли что-то сильно бесит-выпей успокоительное и побейся головой об стенку
Я, намеднись, одному с форума, из модеров который, говорил и тебе повторю - в лицо бы ты мне такого не сказал.

sdku(чего хочет ТС понять весьма трудно )
Так чего же тебя пропэрло ажна на пять(!) постов на единственный(!) невнятный(!)(с твоих же слов!) вброс ТС?
И каждый из которых поправляет-уточняет предыдущий :)

Я ведь к чему это все?.. Вот, у тебя синийй ник, постов наколочено - немеряно. Но ведь лишь местные и я знают цену этому фантику.... А люди, дуболомы, планктон, просто еще не освоившиеся в этом ВБ-Аксо-Екскльном болоте - они ж верят тебе, пустобреху, паразитирующему на реноме форума и данного раздела.

Ты суешься всюду - и в итнтерфейсы, и в чистый ВБ(А), и в Акс, и в межплатформенное взаимодействие. И каждый раз - ой не то, ой, правильнее так, ой [подставьте нужное]...

Ты дискредетируешь форум. Девальвируешь национальную валюту в сумме тех знаний, что здесь накоплены.


Ты безответственно притягиваешь сюда и этот офисный планктон, и егэшных митрофанушек и пр. и иже с ними... Да, они, кончено, движуху создают определенную, но мы, профи, нивелируем эту волну безграмотности и задаем тон. А ты, наоборот, расхолаживаешь их. ..

Как-то так.... Бэз обид.
.
.
...
Рейтинг: 0 / 0
Вывод сотрудников, которые сейчас не в отпуске, то есть работают.
    #39236014
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elenka5Таблица "Сотрудники" содержит поля (id_Сотрудника, Фамилия, Имя, Отчество). Таблица "ОтпускСотрудников" содержит поля (id_Отпуска, id_Сотрудника, НачалоОтпуска, КонецОтпуска). Таблица "Сотрудники" и таблица "СотрудникОтпуск" саязаня связью "один ко многим" И мне нужно вывести список всех сотрудников, у которых сейчас нет отпуска.
Причём, подразумевается, что нужно вывести тех сотрудников которые сейчас работают, то есть либо у них был отпуск, либо будет, либо вообще в таблице "ОтпускСотрудников" никогда не было записи об отпуске.
Код: sql
1.
2.
3.
4.
5.
SELECT Фамилия, Имя, Отчество 
FROM Сотрудники LEFT JOIN ОтпускСотрудников ON Сотрудники.id_Сотрудника=ОтпускСотрудников.id_Сотрудника
WHERE (SELECT id_Сотрудника 
       FROM ОтпускСотрудников 
       WHERE Date() Between НачалоОтпуска AND КонецОтпуска AND id_Сотрудника=Сотрудники.id_Сотрудника) Is Null
...
Рейтинг: 0 / 0
Вывод сотрудников, которые сейчас не в отпуске, то есть работают.
    #39236017
__Michelle,

я знаю, что ты их по своему любишь и по отечески по-матерински опекаешь, наших слюнявчиков :) В хорошем смысле. Каждого из нас когда-то приучали к горшку. И каждый из нас ходил с полными штанами. В отведенное для этого врямя, млин... Не так, разве?...

Только все это мне постонно наопоминает анекдот - откуда на мужике женские трусики:
- Маша, ты ведь у меня умная женщина... ну, придумай сама что-нибудь...

Так и изгаляемся в фантазиях - а что хотел-то ТС?
.
...
Рейтинг: 0 / 0
Вывод сотрудников, которые сейчас не в отпуске, то есть работают.
    #39236020
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
капча-витринами-я-не-роботТак и изгаляемся в фантазиях - а что хотел-то ТС?
.Изгаляться незачем. ТС сказаноElenka5мне нужно вывести список всех сотрудников, у которых сейчас нет отпуска
...
Рейтинг: 0 / 0
Вывод сотрудников, которые сейчас не в отпуске, то есть работают.
    #39236021
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elenka5,

Вашу базу не смотрела.
Думаю, ни к чему.
...
Рейтинг: 0 / 0
Вывод сотрудников, которые сейчас не в отпуске, то есть работают.
    #39236057
__Michelle,

Мишель :)

__MichelleИзгаляться незачем. ТС сказано
Ма Мишель :)

Какая есть - такая есть
И не отнять, и не прибавить...
Твой женский нрав с тобою весь.
В нем свойство главное - лукавить :)

И я другую не хочу.
Такой и будь - сама собою!
За мудрость женскую плачу
Своей мужскою простотою :)

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

Стих ТС посвящается?))) Воспевается шифрование задания?)))

По теме: кое-что хочу уточнить (все мы немножечко sdku)))):
— нужно добавить Distinct для удаления повторов сотрудников, несколько раз бывших в отпуске,
— включить в выборку id_Сотрудника для различения полных тезок.
Код: sql
1.
2.
3.
4.
5.
SELECT DISTINCT id_Сотрудника, Фамилия, Имя, Отчество 
FROM Сотрудники LEFT JOIN ОтпускСотрудников ON Сотрудники.id_Сотрудника=ОтпускСотрудников.id_Сотрудника
WHERE (SELECT id_Сотрудника 
       FROM ОтпускСотрудников 
       WHERE Date() Between НачалоОтпуска AND КонецОтпуска AND id_Сотрудника=Сотрудники.id_Сотрудника) Is Null
...
Рейтинг: 0 / 0
Вывод сотрудников, которые сейчас не в отпуске, то есть работают.
    #39236104
__Michelle,

Стих ТС посвящается?)))

Нет. Тебе лично

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


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