|
Поясните по запросам, пожалуйста... | ☑ | ||
---|---|---|---|---|
0
new1snik
02.07.13
✎
10:42
|
Добрый день. Есть два запроса:
Первый: ВЫБРАТЬ "1" КАК Номер, ЕСТЬNULL(ОсновныеНачисленияРаботниковОрганизаций.Результат, 0) КАК Сумма, РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо, РаботникиОрганизацийСрезПоследних.ЗанимаемыхСтавок, ОсновныеНачисленияРаботниковОрганизаций.НормаДней, NULL КАК Результат ИЗ РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ДатаНач, ) КАК РаботникиОрганизацийСрезПоследних ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций ПО РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо = ОсновныеНачисленияРаботниковОрганизаций.ФизЛицо ГДЕ ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета <> &Ребенок15 И ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета <> &Ребенок30 И ОсновныеНачисленияРаботниковОрганизаций.ПериодДействияНачало >= &ДатаНач И ОсновныеНачисленияРаботниковОрганизаций.ПериодДействияКонец <= &ДатаКон ОБЪЕДИНИТЬ ВЫБРАТЬ "2", ЕСТЬNULL(ДополнительныеНачисленияРаботниковОрганизаций.Результат, 0), РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо, РаботникиОрганизацийСрезПоследних.ЗанимаемыхСтавок, NULL, ДополнительныеНачисленияРаботниковОрганизаций.Результат ИЗ РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ДатаНач, ) КАК РаботникиОрганизацийСрезПоследних ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрРасчета.ДополнительныеНачисленияРаботниковОрганизаций КАК ДополнительныеНачисленияРаботниковОрганизаций ПО РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо = ДополнительныеНачисленияРаботниковОрганизаций.ФизЛицо ГДЕ ДополнительныеНачисленияРаботниковОрганизаций.БазовыйПериодКонец <= &ДатаКон И ДополнительныеНачисленияРаботниковОрганизаций.ВидРасчета <> &ФСССмерть И ДополнительныеНачисленияРаботниковОрганизаций.ВидРасчета <> &ФССУчет И ДополнительныеНачисленияРаботниковОрганизаций.ВидРасчета <> &ФССРождение И ДополнительныеНачисленияРаботниковОрганизаций.ВидРасчета <> &ФССУсыновление И ДополнительныеНачисленияРаботниковОрганизаций.ВидРасчета <> &Молоко И ДополнительныеНачисленияРаботниковОрганизаций.ВидРасчета <> &Матпомощь И ДополнительныеНачисленияРаботниковОрганизаций.БазовыйПериодНачало >= &ДатаНач Второй: ВЫБРАТЬ "1" КАК Номер, ЕСТЬNULL(ОсновныеНачисленияРаботниковОрганизаций.Результат, 0) КАК Сумма ИЗ РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций ГДЕ ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета <> &Ребенок15 И ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета <> &Ребенок30 И ОсновныеНачисленияРаботниковОрганизаций.ПериодДействияНачало >= &ДатаНач И ОсновныеНачисленияРаботниковОрганизаций.ПериодДействияКонец <= &ДатаКон ОБЪЕДИНИТЬ ВЫБРАТЬ "2", ЕСТЬNULL(ДополнительныеНачисленияРаботниковОрганизаций.Результат, 0) ИЗ РегистрРасчета.ДополнительныеНачисленияРаботниковОрганизаций КАК ДополнительныеНачисленияРаботниковОрганизаций ГДЕ ДополнительныеНачисленияРаботниковОрганизаций.БазовыйПериодКонец <= &ДатаКон И ДополнительныеНачисленияРаботниковОрганизаций.ВидРасчета <> &ФСССмерть И ДополнительныеНачисленияРаботниковОрганизаций.ВидРасчета <> &ФССУчет И ДополнительныеНачисленияРаботниковОрганизаций.ВидРасчета <> &ФССРождение И ДополнительныеНачисленияРаботниковОрганизаций.ВидРасчета <> &ФССУсыновление И ДополнительныеНачисленияРаботниковОрганизаций.ВидРасчета <> &Молоко И ДополнительныеНачисленияРаботниковОрганизаций.ВидРасчета <> &Матпомощь И ДополнительныеНачисленияРаботниковОрганизаций.БазовыйПериодНачало >= &ДатаНач В первом запросе есть внутреннее соединение, во втором этого соединения нет, в остальном запросы одинаковы. Если я правильно понимаю, то Сумма первого должна быть либо равна сумме первого, либо быть меньше, т.к мы ограничили подходящие нам записи. Но она больше. Почему? |
|||
1
Jonny_Khomich
02.07.13
✎
10:44
|
букв то много как
|
|||
2
Beduin
02.07.13
✎
10:45
|
(0) Регистр Работники расширяетя записи.
|
|||
3
new1snik
02.07.13
✎
10:47
|
(2) Хм, поменять местами Работников и начисления значит?
|
|||
4
Beduin
02.07.13
✎
10:48
|
(3) У тебя в таблице работников больше записей чем в таблице начислений. Как ты хочешь их менять?
|
|||
5
new1snik
02.07.13
✎
10:51
|
(4) Я тогда не понимаю, от куда берутся лишние результаты в сумме. Если записей в работниках больше, чем в начислениях, то запрос должен просто вернуть нам начисления по всем физлицам из РегистраРасчета. То есть в первом запросе результат должен быть равен результату второго запроса.
|
|||
6
exwill
02.07.13
✎
11:00
|
(5) В регистре работники организаций есть по несколько записей для одного физ. лица.
|
|||
7
new1snik
02.07.13
✎
11:11
|
(6) Интересно.. а как мне тогда получить начисления только тех сотрудников, которые на начало расчетного периода были работниками организации?
|
|||
8
zak555
02.07.13
✎
11:12
|
(7) ты не забывай, что работник мог прийти и в середине периода
|
|||
9
new1snik
02.07.13
✎
11:18
|
(8) Тогда делаем срез работников организации на конец расчетного периода.
|
|||
10
zak555
02.07.13
✎
11:19
|
(9) тогда ты пропустишь тех, кто уволился в течение месяца =)
|
|||
11
new1snik
02.07.13
✎
11:22
|
(10) И как тогда поступить? Нужны срезы на каждый день расчетного периода...
|
|||
12
cw014
02.07.13
✎
11:24
|
"Если я правильно понимаю, то Сумма первого должна быть либо равна сумме первого, либо быть меньше, т.к мы ограничили подходящие нам записи."
При внутреннем соединении то? Не факт, однозначно |
|||
13
zak555
02.07.13
✎
11:24
|
(11) нет
|
|||
14
new1snik
02.07.13
✎
11:27
|
(13) А как, если вас не затруднит?
|
|||
15
zak555
02.07.13
✎
11:33
|
(14)
срезпоследних на конец даты где состояние = работает объеденить РаботникиОрганизаций между датаНач по датаКон где состояние <> работает |
|||
16
new1snik
02.07.13
✎
11:40
|
(15) И как я определю состояние? Все что я нашел подходящее, это дата увольнения.
|
|||
17
zak555
02.07.13
✎
11:41
|
(16) смотри структуру РаботникиОрганизаций
|
|||
18
new1snik
02.07.13
✎
11:46
|
(17) Извини, но я там не вижу ни одного реквизита с названием "состояние".
|
|||
19
zak555
02.07.13
✎
11:52
|
а у меня зупа нет под рукой
|
|||
20
new1snik
02.07.13
✎
11:56
|
(19) Это УПП 1.3
|
|||
21
Beduin
02.07.13
✎
11:58
|
(0) Слушай парень, тебе не стыдно. Все уже разжевали, что еще надо?
За тебя все решить вообще?! |
|||
22
new1snik
02.07.13
✎
12:01
|
(21) Не ругайся, дядя. Я просто не все понял, поэтому и спрашиваю.
|
|||
23
zak555
02.07.13
✎
12:02
|
(20) какая разница ?
|
|||
24
new1snik
02.07.13
✎
12:03
|
(23)Я не знаю. Просто ты упомянул зуп, я и подумал, что это имеет какое-то значение.
|
|||
25
new1snik
03.07.13
✎
10:01
|
(15) Аааа, то есть сначала СрезомПоследних получаем тех сотрудников, которые все еще работают на конец расчетного месяца, а потом к ним плюсуем тех сотрудников, которых уволили в течении расчетного месяца и уже по этим сотрудникам получаем начисления. Спасибо!
|
|||
26
КУНГ ФУ 1С
03.07.13
✎
10:16
|
И ДополнительныеНачисленияРаботниковОрганизаций.ВидРасчета <> &ФСССмерть
И ДополнительныеНачисленияРаботниковОрганизаций.ВидРасчета <> &ФССУчет И ДополнительныеНачисленияРаботниковОрганизаций.ВидРасчета <> &ФССРождение И ДополнительныеНачисленияРаботниковОрганизаций.ВидРасчета <> &ФССУсыновление И ДополнительныеНачисленияРаботниковОрганизаций.ВидРасчета <> &Молоко И ДополнительныеНачисленияРаботниковОрганизаций.ВидРасчета <> &Матпомощь Неужели нельзя сделать ТАК ДополнительныеНачисленияРаботниковОрганизаций.ВидРасчета НЕ В (&ЗапрещенныеВидыРасчетов) |
|||
27
new1snik
03.07.13
✎
10:27
|
(26) Передать массив запрещенных? Можно, но я об это не подумал. Да и есть ли принципиальная разница? Отчет будет быстрей работать?
|
|||
28
zak555
03.07.13
✎
12:07
|
(25) да
(27) проще будет добавлять/исключать |
|||
29
new1snik
03.07.13
✎
12:18
|
Я все не могу понять, почему при добавлении РегистрСведений.РаботникиОрганизаций в запрос увеличивается сумма начислений. Ведь вторым запросом мы выбираем все начисления, которые подходят нам по Видам расчета. От куда берутся лишние данные при использовании РегистраСведений?
|
|||
30
new1snik
03.07.13
✎
12:20
|
+(29) как то криво описал. Вообщем, мы ведь сначала выбираем все начисления ограничивая их только по видам расчета, мы не обращаем внимания на сотрудников, которые эти начисления получают. А когда используем регистрсведений, то вводим доп условие в виде физ.лиц получающих начисления. То есть сумма начислений должна быть <=
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |