Как выбрать из регистра сведения не повторяющиеся записи #331359


#0 by Паладин
Вроде бы вопрос простой. Делаю запрос по регистру Работники организации (это подзапрос) вообще хотел бы выбрать каждому сотруднику последнюю запись.    РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации Но выбираются в некоторых случаях по 2 записи для одного сотрудника, например, последняя где он работает, и где уволен. А мне нужна только самая последняя (т.е. в которой указано что он работает) Буду рад любому совету
#1 by Immortal
#2 by merkyrii
тебе нужно выбрать только работающих сотрудников?
#3 by Salvador Limones
Условия в ПВТ засунь.
#4 by merkyrii
+1
#5 by Паладин
нет, не только ПВТ - это что? в смысле условие в виртуальной таблице?
#6 by Паладин
+ сорри, понял, параметр виртуальной таблицы. но какое лучше задать условие? такой пример, если сотрудника сначала уволили потом он был принят на работу - берутся 2 записи, а мне нужна последняя.
#7 by Defender aka LINN
Хреново регистр спроектирован, значит... У тебя что, стостояние работника в измерении хранится?
#8 by Паладин
это регистр из ЗУП. мне нужно получить должность, которая у сотрудника в данный момент, т.е. предыдущие записи (где у него например нет должности, т.к. он уволен) не нужны
#9 by Defender aka LINN
Тогда откуда 2 записи? Разные приказы? Сворачивай по максимальной дате и соединяй с собой.
#10 by Паладин
да, верно, разные приказы. а можно в самом запросе свернуть по максимальной дате? т.е. я понимаю так что ты говоришь о свертке результирующей таблицы по дате?
#11 by Defender aka LINN
не так понимаешь
#12 by Паладин
объясни пожалуйста новичку)
#13 by Паладин
ап
#14 by Defender aka LINN
МАКСИМУМ
#15 by Паладин
так у меня не работает. Если добавляю первой строкой МАКСИМУМ (РаботникиОрганизацийСрезПоследних.Период) - ругается, что ФизЛицо не входит в группу
#16 by Defender aka LINN
Конструктор запросов украли?
#17 by Salvador Limones
Это ад какой-то!
#18 by Паладин
не утруждайте себя тратой лишних нервов очень смешно, спасибо, я через конструктор и делал. Если нет возможности сказать - все равно спасибо за идею, буду в этом направлении искать.
#19 by Паладин
добавил МАКСИМУМ(РаботникиОрганизацийСрезПоследних.Период) Как Период - запрос запустился без ошибок, но проблема не решена, по прежнему две записи по сотруднику
#20 by hhhh
сгруппировал?
#21 by Паладин
Да
#22 by Паладин
ап2
#23 by ХочуВойти
ЗУП 2.5... и во всем виноват справочник сотрудники...
#24 by ХочуВойти
Дык получилось че нить?
#25 by Паладин
мне не совсем ясно, причем тут справочник сотрудники. Вопрос стоит в том, что бы выбиралась последняя запись регистра.
#26 by ХочуВойти
У тебя конфа какая?
#27 by Паладин
ЗУП 2.5
#28 by ХочуВойти
Дык в указаны прраметры для 2.1... для 2.5: Ресурсы  : ...
#29 by Паладин
сори, конфа 2.1, я не на ту конфу глянул
#30 by Паладин
Конфигурация 2.1
#31 by ХочуВойти
Если так, тогда эадваивается только потому... что реально у тебя там два ФИЗ ЛИЦА разных, пусть и с одинаковым табельным и наименованием....
#32 by Паладин
Визлицо одно, просто разные записи в регистре сведений (такое помоему нормально) т.к. его уволили, потом он опять принялся на работу. и берутся две эти записи, а не одна
#33 by Паладин
*Физлицо
#34 by ХочуВойти
... это ж срез последних... как ето интересно берутся две записи то?
#35 by ХочуВойти
А базейка файловая или скуль?
#36 by Паладин
скуль конечно) сам не знаю как((
#37 by ХочуВойти
Было у меня что то похожее, но на файловой... тестирование и исправление помогло...
#38 by Salvador Limones
Запрос-то покажи итоговый.
#39 by Паладин
ВЫБРАТЬ        РаботникиОрганизацийСрезПоследних.Организация КАК Организация, АВТОУПОРЯДОЧИВАНИЕ
#40 by Salvador Limones
Йопта, ну вставь ты условия в ПВТ.
#41 by Паладин
Тока что поставил условие в запрос, похоже не правильно, прога послала меня и закрылась) Как поставить условие? МАКСИМУМ(Период) нельзя, Период = МАКСИМУМ(Период) (вот после этого у меня программа и закрылась, когда запрос в консоли запустил)
#42 by Паладин
Мне нужны не только работающие сотрудники
#43 by ХочуВойти
Чудес не бывает ... я бы все таки глянул справочник физ лиц...
#44 by Defender aka LINN
Кто говорил про условия? Соединение теперь делай.
#45 by Паладин
ща попробую
#46 by Паладин
соединил с основным запросом - все равно по этому сотруднику 2 записи
#47 by Паладин
ап3
#48 by ХочуВойти
...... я тебе посоветую залезть ручками в регистр и посмотреть записи конкретно по тому физ лицу, по которому у тебя задваиваеться...
#49 by Defender aka LINN
Нет, ну на что только человек не идет, чтобы нихрена не знать... Почитай ты уже книжку какую-нить по SQL... В подзапросе надо МАКСИМУМ определять. А потом уже соединять
#50 by Паладин
смотрел, их там две. Уволен и принят на работу (соответственно,одна запись без должности и без табельного номера) а вторая - с должностью и табельным номером зря ты так, я в 8-рке работаю меньше двух месяцев, а программировать начал намного позже(не больше месяца) и даже на выходных читаю книги по ней. и определил я в подзапросе, а потом соединил. А книжка по SQL дома лежит, просто на этих выходных данная задача не стояла, приду почитаю. Кое какая мысль появилась, если получится с реализацией - напишу сюда. Но советам всегда рад.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям