|
Помогите пожалуйста с запросом | ☑ | ||
---|---|---|---|---|
0
lg2marvel
05.06.19
✎
17:56
|
Добрый день. Запросом получаю виды начислений, помещаю перечень видов в ВТНачисленияУдержания
ВЫБРАТЬ НачисленияУдержанияПоСотрудникам.НачислениеУдержание КАК НачислениеУдержание, НачисленияУдержанияПоСотрудникам.ГруппаНачисленияУдержанияВыплаты КАК ГруппаНачисленияУдержанияВыплаты, НачисленияУдержанияПоСотрудникам.НачислениеУдержание.КраткоеНаименование КАК НачислениеУдержаниеКраткое ПОМЕСТИТЬ ВТНачисленияУдержания ИЗ РегистрНакопления.НачисленияУдержанияПоСотрудникам КАК НачисленияУдержанияПоСотрудникам ГДЕ НачисленияУдержанияПоСотрудникам.Период МЕЖДУ НАЧАЛОПЕРИОДА(&Нач, ДЕНЬ) И КОНЕЦПЕРИОДА(&Кон, ДЕНЬ) И (НЕ &ОтборПоПодразделению ИЛИ НачисленияУдержанияПоСотрудникам.Подразделение В ИЕРАРХИИ (&Подразделение)) И (НЕ &ОтборПоФизЛицу ИЛИ НачисленияУдержанияПоСотрудникам.ФизическоеЛицо = &ФизическоеЛицо) Затем нужно вывести Физлицо, Подразделение на котором устроен сотрудник, начисление и сумму начисления, но с таким условием чтоб если для данного сотрудника начисление не используется то выводилась пустая строка или 0. Не могу придумать как связаться с временной таблицей чтоб это реализовать? Второй запрос выглядит примерно так: ВЫБРАТЬ ВТНачисленияУдержания.ГруппаНачисленияУдержанияВыплаты КАК ГруппаНачисленияУдержанияВыплаты, ВТНачисленияУдержания.НачислениеУдержание КАК НачислениеУдержание, ВТНачисленияУдержания.НачислениеУдержаниеКраткое КАК НачислениеУдержаниеКраткое, НачисленияУдержанияПоСотрудникамОбороты.Подразделение КАК Подразделение, ЕСТЬNULL(НачисленияУдержанияПоСотрудникамОбороты.СуммаОборот, 0) КАК СуммаНУ, НачисленияУдержанияПоСотрудникамОбороты.ФизическоеЛицо КАК ФизическоеЛицо ИЗ РегистрНакопления.НачисленияУдержанияПоСотрудникам.Обороты( НАЧАЛОПЕРИОДА(&Нач, ДЕНЬ), КОНЕЦПЕРИОДА(&Кон, ДЕНЬ), , (НЕ &ОтборПоФизЛицу ИЛИ ФизическоеЛицо = &ФизическоеЛицо) И (НЕ &ОтборПоПодразделению ИЛИ Подразделение = &Подразделение)) КАК НачисленияУдержанияПоСотрудникамОбороты, ВТНачисленияУдержания КАК ВТНачисленияУдержания ИТОГИ СУММА(СуммаНУ) ПО Подразделение ИЕРАРХИЯ, ФизическоеЛицо, ГруппаНачисленияУдержанияВыплаты, НачислениеУдержание АВТОУПОРЯДОЧИВАНИЕ Если делаю ЛЕВОЕ СОЕДИНЕНИЕ и связь по НачислениеУдержание - если не используется начисление - оно пропускается |
|||
1
novichok79
05.06.19
✎
18:07
|
а база какая? версия платформы?
|
|||
2
novichok79
05.06.19
✎
18:08
|
если ЗУП 3.1 там для этого уже запросы создаются, ты чисто из таблиц данные тягаешь
|
|||
3
lg2marvel
05.06.19
✎
18:12
|
(1) ЗУП 3.1.9 платформа (8.3.13.1644)
|
|||
4
lg2marvel
05.06.19
✎
18:21
|
По сути надо решить задачу: есть 2 таблицы:
А Наименование сумма цвет а 10 красный б 15 синий с 20 синий Б Наименование Красный Синий Желтый Надо вывести запросом в таблицу С Наименование Сумма Цвет а 10 Красный а 0 синий а 0 Желтый б 0 Красный б 15 синий б 0 Желтый с 0 Красный с 20 синий с 0 Желтый |
|||
5
lg2marvel
05.06.19
✎
18:23
|
Или может имея 2 результата запроса объединить их...
|
|||
6
Бертыш
05.06.19
✎
23:31
|
(5) Какой то ты левый. Наше дело правое. Мы победим
|
|||
7
catena
06.06.19
✎
04:54
|
Составляете таблицу всех начислений/удержаний, которые должны фигурировать.
К ней левым по удержанию и физлицу крепите значения по физлицам с ЕСТЬNULL(НачисленияУдержанияПоСотрудникамОбороты.СуммаОборот, 0). |
|||
8
lg2marvel
06.06.19
✎
10:09
|
(7) Сделал вот так:
ВЫБРАТЬ НачисленияУдержанияПоСотрудникам.НачислениеУдержание КАК НачислениеУдержание, НачисленияУдержанияПоСотрудникам.ГруппаНачисленияУдержанияВыплаты КАК ГруппаНачисленияУдержанияВыплаты, НачисленияУдержанияПоСотрудникам.НачислениеУдержание.КраткоеНаименование КАК НачислениеУдержаниеКраткое, НачисленияУдержанияПоСотрудникамОбороты.Подразделение КАК Подразделение, НачисленияУдержанияПоСотрудникамОбороты.ФизическоеЛицо КАК ФизическоеЛицо, ЕСТЬNULL(НачисленияУдержанияПоСотрудникамОбороты.СуммаОборот, 0) КАК СуммаНУ ИЗ РегистрНакопления.НачисленияУдержанияПоСотрудникам КАК НачисленияУдержанияПоСотрудникам ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.НачисленияУдержанияПоСотрудникам.Обороты( НАЧАЛОПЕРИОДА(&Нач, ДЕНЬ), КОНЕЦПЕРИОДА(&Кон, ДЕНЬ), , (НЕ &ОтборПоФизЛицу ИЛИ ФизическоеЛицо = &ФизическоеЛицо) И (НЕ &ОтборПоПодразделению ИЛИ Подразделение = &Подразделение)) КАК НачисленияУдержанияПоСотрудникамОбороты ПО (НачисленияУдержанияПоСотрудникам.ФизическоеЛицо = НачисленияУдержанияПоСотрудникамОбороты.ФизическоеЛицо) И (НачисленияУдержанияПоСотрудникам.НачислениеУдержание = НачисленияУдержанияПоСотрудникамОбороты.НачислениеУдержание) ГДЕ НачисленияУдержанияПоСотрудникам.Период МЕЖДУ НАЧАЛОПЕРИОДА(&Нач, ДЕНЬ) И КОНЕЦПЕРИОДА(&Кон, ДЕНЬ) И (НЕ &ОтборПоПодразделению ИЛИ НачисленияУдержанияПоСотрудникам.Подразделение В ИЕРАРХИИ (&Подразделение)) И (НЕ &ОтборПоФизЛицу ИЛИ НачисленияУдержанияПоСотрудникам.ФизическоеЛицо = &ФизическоеЛицо) ИТОГИ СУММА(СуммаНУ) ПО Подразделение ИЕРАРХИЯ, ФизическоеЛицо, ГруппаНачисленияУдержанияВыплаты, НачислениеУдержание АВТОУПОРЯДОЧИВАНИЕ В итоге выводится не так как хотелось бы |
|||
9
lg2marvel
06.06.19
✎
10:11
|
||||
10
catena
06.06.19
✎
10:55
|
(8)Хорошо, уточняю: Составляете таблицу всех ``уникальных`` начислений/удержаний
|
|||
14
novichok79
06.06.19
✎
11:41
|
погуглите в конфигурации:
СоздатьВТНачисленияСПоказателямиТарифныхСтавок СоздатьВТКадровыеДанныеСотрудников я бы шел таким путем, учитывая переделки ЗУП 3.1, прямой запрос при следующем обновлении может сломаться. |
|||
15
lg2marvel
06.06.19
✎
12:05
|
(10) (14) спасибо, смотрю
|
|||
16
lg2marvel
06.06.19
✎
12:15
|
(10) Это и есть уникальные начисления удержания
НачислениеУдержание Оплата по окладу Премия мес НДФЛ Удержание по исполнительному документу ВЫБРАТЬ НачисленияУдержанияПоСотрудникам.НачислениеУдержание КАК НачислениеУдержание, НачисленияУдержанияПоСотрудникам.ГруппаНачисленияУдержанияВыплаты КАК ГруппаНачисленияУдержанияВыплаты, НачисленияУдержанияПоСотрудникам.НачислениеУдержание.КраткоеНаименование КАК НачислениеУдержаниеКраткое ИЗ РегистрНакопления.НачисленияУдержанияПоСотрудникам КАК НачисленияУдержанияПоСотрудникам ГДЕ НачисленияУдержанияПоСотрудникам.Период МЕЖДУ НАЧАЛОПЕРИОДА(&Нач, ДЕНЬ) И КОНЕЦПЕРИОДА(&Кон, ДЕНЬ) И (НЕ &ОтборПоПодразделению ИЛИ НачисленияУдержанияПоСотрудникам.Подразделение В ИЕРАРХИИ (&Подразделение)) И (НЕ &ОтборПоФизЛицу ИЛИ НачисленияУдержанияПоСотрудникам.ФизическоеЛицо = &ФизическоеЛицо) СГРУППИРОВАТЬ ПО НачисленияУдержанияПоСотрудникам.ГруппаНачисленияУдержанияВыплаты, НачисленияУдержанияПоСотрудникам.НачислениеУдержание, НачисленияУдержанияПоСотрудникам.НачислениеУдержание.КраткоеНаименование АВТОУПОРЯДОЧИВАНИЕ |
|||
17
catena
06.06.19
✎
12:26
|
(16)Но в (8) соединение ведь не с такой таблицей.
|
|||
18
breezee
06.06.19
✎
12:28
|
(16) Не пишите такую констуркцию
И (НЕ &ОтборПоПодразделению ИЛИ НачисленияУдержанияПоСотрудникам.Подразделение В ИЕРАРХИИ (&Подразделение)) ИЛИ плохо работает, оптимизатор его плохо ест. В ИЕРАРХИИ тоже лучше не использовать. Не пишите, потом кто-то будет переписывать.. |
|||
19
lg2marvel
06.06.19
✎
12:55
|
(17) вот запрос: таблица начислений удержаний и к ней левым соединением регистр с оборотами
ВЫБРАТЬ НачисленияУдержанияПоСотрудникам.НачислениеУдержание КАК НачислениеУдержание, НачисленияУдержанияПоСотрудникам.ГруппаНачисленияУдержанияВыплаты КАК ГруппаНачисленияУдержанияВыплаты, НачисленияУдержанияПоСотрудникам.НачислениеУдержание.КраткоеНаименование КАК НачислениеУдержаниеКраткое, НачисленияУдержанияПоСотрудникамОбороты.ФизическоеЛицо КАК ФизическоеЛицо, НачисленияУдержанияПоСотрудникамОбороты.Подразделение КАК Подразделение, ЕСТЬNULL(НачисленияУдержанияПоСотрудникамОбороты.СуммаОборот,0) КАК СуммаОборот ИЗ РегистрНакопления.НачисленияУдержанияПоСотрудникам КАК НачисленияУдержанияПоСотрудникам ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.НачисленияУдержанияПоСотрудникам.Обороты(НАЧАЛОПЕРИОДА(&Нач, ДЕНЬ), КОНЕЦПЕРИОДА(&Кон, ДЕНЬ), , Подразделение В (&Подразделение)) КАК НачисленияУдержанияПоСотрудникамОбороты ПО (НачисленияУдержанияПоСотрудникам.ФизическоеЛицо = НачисленияУдержанияПоСотрудникамОбороты.ФизическоеЛицо И НачисленияУдержанияПоСотрудникам.НачислениеУдержание = НачисленияУдержанияПоСотрудникамОбороты.НачислениеУдержание) ГДЕ НачисленияУдержанияПоСотрудникам.Период МЕЖДУ НАЧАЛОПЕРИОДА(&Нач, ДЕНЬ) И КОНЕЦПЕРИОДА(&Кон, ДЕНЬ) И (НЕ &ОтборПоПодразделению ИЛИ НачисленияУдержанияПоСотрудникам.Подразделение В ИЕРАРХИИ (&Подразделение)) И (НЕ &ОтборПоФизЛицу ИЛИ НачисленияУдержанияПоСотрудникам.ФизическоеЛицо = &ФизическоеЛицо) СГРУППИРОВАТЬ ПО НачисленияУдержанияПоСотрудникам.ГруппаНачисленияУдержанияВыплаты, НачисленияУдержанияПоСотрудникам.НачислениеУдержание, НачисленияУдержанияПоСотрудникам.НачислениеУдержание.КраткоеНаименование, НачисленияУдержанияПоСотрудникамОбороты.ФизическоеЛицо, НачисленияУдержанияПоСотрудникамОбороты.Подразделение, НачисленияУдержанияПоСотрудникамОбороты.СуммаОборот ИТОГИ СУММА(СуммаОборот) ПО Подразделение ИЕРАРХИЯ, ФизическоеЛицо АВТОУПОРЯДОЧИВАНИЕ а результат тот-же: http://i.piccy.info/i9/0a87667e6df6fd1c7affcd4a0bc7578e/1559815411/73356/1312453/Snymok.jpg |
|||
20
catena
06.06.19
✎
13:02
|
(19)В данном случае сгруппировать работает уже с результатом.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |