Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запрос через конструктор / 21 сообщений из 21, страница 1 из 1
16.12.2015, 16:40
    #39129969
Arina9
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос через конструктор
Доброго времени суток! Помогите пожалуйста, кому не сложно. Предметная область Отдел кадров. Имеются приказы с полями номер приказа, дата, код приказа(виды: принятие, увольнение, перемещение). Как из них выбрать максимальную дату с нужным кодом приказа? (Это необходимо для создания списка работающих сотрудников,не включая тех, кто когда-то работал. То есть выбрать тех у кого последняя дата была именно на принятие или перемещение).
PS.БД с таблицами прикладываю.
...
Рейтинг: 0 / 0
16.12.2015, 17:27
    #39130022
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос через конструктор
SELECT TOP1 *
FROM [table]
WHERE [code] IN (:codelist)
ORDER BY [date] DESC
...
Рейтинг: 0 / 0
16.12.2015, 18:01
    #39130061
Arina9
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос через конструктор
Спасибо, но мне нужна реализация через конструктор
...
Рейтинг: 0 / 0
16.12.2015, 18:10
    #39130069
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос через конструктор
Через конструктор ТАКОЙ метод не реализуется - конструктор не умеет TOP.
В конструкторе - постройте запрос, который получит MAX(date) для требуемых кодов, и сохраните его. Потом постройте второй запрос на основе исходной таблицы и первого запроса, связав их по дате, сделайте снова отбор по кодам первой таблицы и выберите все её поля.
...
Рейтинг: 0 / 0
16.12.2015, 18:15
    #39130076
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос через конструктор
Arina9не включая тех, кто когда-то работал.То есть, не включая тех, кто уволен?Arina9Имеются приказы с полями номер приказа, дата, код приказа(виды: принятие, увольнение, перемещение). Как из них выбрать максимальную дату с нужным кодом приказа? (Это необходимо для создания списка работающих сотрудников,не включая тех, кто когда-то работал.
То есть выбрать тех у кого последняя дата была именно на принятие или перемещение ).Для этого в таблице приказов нужно поле с кодом сотрудника, к которому этот приказ относится.
Если такое поле есть (допустим, Id_E), то
Код: sql
1.
2.
3.
SELECT *
FROM table
WHERE code <> <код увольнения> AND date = DMax("date","table","Id_E = " & Id_E)
...
Рейтинг: 0 / 0
16.12.2015, 18:17
    #39130078
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос через конструктор
Arina9Спасибо, но мне нужна реализация через конструкторВнесите текст запроса в режиме SQL, а затем перейдите в конструктор.)))
...
Рейтинг: 0 / 0
16.12.2015, 18:33
    #39130097
bubucha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос через конструктор
Akinaконструктор не умеет TOP.
А97 умел и умеет, его что , выпилили?
...
Рейтинг: 0 / 0
16.12.2015, 18:43
    #39130114
mds_world
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос через конструктор
Привет, bubucha!
Умеет и сейчас. В свойствах запроса в конструкторе выбрать Набор значений (в английской версии TopValues) и поставить 1.
...
Рейтинг: 0 / 0
16.12.2015, 18:48
    #39130124
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос через конструктор
bubuchaА97 умел и умеет
Через конструктор? мож, и правда есть - просто никогда не пользовал. Не смотрел даже.
...
Рейтинг: 0 / 0
16.12.2015, 19:52
    #39130174
Arina9
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос через конструктор
[quot __Michelle]Для этого в таблице приказов нужно поле с кодом сотрудника, к которому этот приказ относится.
У меня по одному пркиазу могут быть уволены или приняты несколько работников
...
Рейтинг: 0 / 0
16.12.2015, 20:51
    #39130199
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос через конструктор
Arina9У меня по одному пркиазу могут быть уволены или приняты несколько работниковКак узнать, кто указан в приказе?
Базу посмотреть не могу.
Переведите, пожалуйста, в mdb. Тогда смогу посмотреть.
...
Рейтинг: 0 / 0
16.12.2015, 21:24
    #39130222
Arina9
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос через конструктор
__Michelle, Думаю, по схеме данных поймете
...
Рейтинг: 0 / 0
16.12.2015, 22:03
    #39130231
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос через конструктор
Действительно ли Вам нужно найти "максимальную дату с нужным кодом приказа"
"для создания списка работающих сотрудников,не включая тех, кто когда-то работал"?
Если правильно понимаю, в конечном итоге нужен список неуволенных сотрудников .
Тогда так
Запрос 1
Код: sql
1.
2.
3.
SELECT [Рабочие данные].TN
FROM Приказ INNER JOIN [Рабочие данные] ON Приказ.НП = [Рабочие данные].НП
WHERE Приказ.КП=2;

Запрос 2
Код: sql
1.
2.
3.
SELECT Работник.*
FROM Работник LEFT JOIN Запрос1 ON Работник.TN = Запрос1.TN
WHERE Запрос1.TN Is Null;
...
Рейтинг: 0 / 0
16.12.2015, 22:09
    #39130234
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос через конструктор
Или одним запросом
Код: sql
1.
2.
3.
4.
5.
6.
SELECT Работник.*
FROM Работник LEFT JOIN 
(SELECT [Рабочие данные].TN
FROM Приказ INNER JOIN [Рабочие данные] ON Приказ.НП = [Рабочие данные].НП
WHERE (((Приказ.КП)=2))) AS Z ON Работник.TN = Z.TN
WHERE (((Z.TN) Is Null));

В конструкторе откывается.)))
...
Рейтинг: 0 / 0
16.12.2015, 22:11
    #39130235
Arina9
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос через конструктор
__Michelle,

Если бы было все так просто:( Работник же может потом обратно устроиться на работу, поэтому нужно по последней дате приказа
...
Рейтинг: 0 / 0
16.12.2015, 22:15
    #39130237
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос через конструктор
Arina9__Michelle,

Если бы было все так просто:( Работник же может потом обратно устроиться на работу, поэтому нужно по последней дате приказаИ что, получит снова тот же табельный номер?
...
Рейтинг: 0 / 0
16.12.2015, 22:16
    #39130239
guest_rusimport
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос через конструктор
Arina9__Michelle,

Если бы было все так просто:( Работник же может потом обратно устроиться на работу, поэтому нужно по последней дате приказа

тогда так (см. пример) ... ( а разве табельный номер у работника при этом не изменится ? :)
...
Рейтинг: 0 / 0
16.12.2015, 22:35
    #39130246
Arina9
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос через конструктор
guest_rusimport,

Спасибо вам огромное!! вроде все как надо, только не пойму, кажется я так же делала.. А табельный номер сохраняется, так мне сказала препод по БД.
...
Рейтинг: 0 / 0
16.12.2015, 22:43
    #39130249
guest_rusimport
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос через конструктор
Arina9,
да, на здоровье

действительно , табельный может сохраняться за сотрудником принятым опять в течение календарного года на тоже предприятие
вот цитата: (не знал, хоть уже 30 лет работаю... век живи-век учись:)
"Табельный номер присваивают конкретному человеку, а не штатной единице. Поэтому правильнее, чтобы у одного и того же сотрудника был один табельный номер.
Если присвоить новый табельный номер, то потом не получится корректно рассчитать в программе налоги с зарплаты, которые определяются нарастающим итогом по такому человеку. Кроме того, формировать справки № НДФЛ и отчетность по персонифицированному учету также удобнее, когда у сотрудника один табельный номер. Если их будет два, то по каждому номеру сформируется отдельный отчет.Компании, которая повторно пользуется старыми табельными номерами, какие-либо санкции не грозят. Это мнение специалистов столичной Госинспекции по труду. Ограничение на повторное использование табельных номеров – не ранее чем через три года после увольнения сотрудника – официально нигде не прописано.
Т.е.речь идет о назначении повторно принимаемым сотрудникам их старых, некогда ими же занимаемых, табельных номеров, а никак не об их "повторном использовании". "
...
Рейтинг: 0 / 0
16.12.2015, 22:50
    #39130256
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос через конструктор
Arina9,

А что ж мне-то, никакого спасиба не будет?

P.S.
Задачу учитесь излагать четко, не вынуждайте тянуть из Вас подробности клещами.
...
Рейтинг: 0 / 0
16.12.2015, 23:00
    #39130260
Arina9
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос через конструктор
__Michelle,
И вам огромное спасибо!!!:) я даже на ники не посмотрела, думала это один и тот же человек:)
PS. Учту, спасибо за совет
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запрос через конструктор / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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