|
8.2 Объединение запросов | ☑ | ||
---|---|---|---|---|
0
hawk1
11.05.13
✎
18:47
|
Есть запрос
"ВЫБРАТЬ | НачислениеПремиальных.СуммаПремиальных, | NULL КАК СуммаВыслуги |ИЗ | РегистрСведений.НачислениеПремиальных КАК НачислениеПремиальных |ГДЕ | НачислениеПремиальных.Сотрудник = &Сотрудник | И НачислениеПремиальных.Период = &Период | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | NULL, | НачислениеВыслугиЛет.СуммаВыслуги |ИЗ | РегистрСведений.НачислениеВыслугиЛет КАК НачислениеВыслугиЛет |ГДЕ | НачислениеВыслугиЛет.Период = &Период | И НачислениеВыслугиЛет.Сотрудник = &Сотрудник"; Записи есть в обоих регистрах. Но почему-то сумма премиальных выбирается а сумма выслуги нет. |
|||
1
zavrik
11.05.13
✎
18:49
|
Если условие по периоду или сотруднику убрать, то сумма выслуги выбирается?
|
|||
2
shuhard
11.05.13
✎
18:54
|
(0) раз не выбирается, значит не чему выбираться
|
|||
3
hawk1
11.05.13
✎
19:09
|
(1) Тоже ничего
|
|||
4
hawk1
11.05.13
✎
19:18
|
(2) Запись точно есть.
|
|||
5
Любопытная
11.05.13
✎
19:20
|
Либо период не тот, либо сотрудник. Третьего не дано
|
|||
6
hawk1
11.05.13
✎
19:28
|
(5) И как это проверить?
|
|||
7
ИсчадиеADO
11.05.13
✎
19:30
|
стаж 3,5 года, а слов отладчик и консоль запросов не слышал...
|
|||
8
Любопытная
11.05.13
✎
19:30
|
Второй запрос сделай таким, чтоб запись твоя им отбиралась. Тогда можно говорить об объединении.
Посмотри на запись, которая точно есть, и подумай - почему она в выборку по запросу не попадает |
|||
9
hawk1
11.05.13
✎
20:29
|
По отдедьности все работает.
|
|||
10
shuhard
11.05.13
✎
20:30
|
(9) не верю (с)
|
|||
11
ИсчадиеADO
11.05.13
✎
20:33
|
(9) телепатирую... запрос выгружаешь в таблицу и берешь строку с индексом 0?
|
|||
12
hawk1
11.05.13
✎
20:34
|
&НаСервере
Процедура ЗаполнитьНачисления() Объект.РасчетОтчислений.Очистить(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | НачислениеПоОкладу.Период, | НачислениеПоОкладу.СуммаНачислений |ИЗ | РегистрСведений.НачислениеПоОкладу КАК НачислениеПоОкладу |ГДЕ | НачислениеПоОкладу.Сотрудник = &Сотрудник | И НачислениеПоОкладу.Период МЕЖДУ &НачГода И &КонГода"; Запрос.УстановитьПараметр("Сотрудник",Объект.Сотрудник); ПредыдущийГод = Год(ТекущаяДата()) - 1; Запрос.УстановитьПараметр("НачГода",Дата(ПредыдущийГод,1,1)); Запрос.УстановитьПараметр("КонГода",Дата(ПредыдущийГод,12,31)); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Стр = Объект.РасчетОтчислений.Добавить(); Стр.Период = Выборка.Период; Стр.Оклад = Выборка.СуммаНачислений; Запрос.Текст = "ВЫБРАТЬ | НачислениеПремиальных.СуммаПремиальных |ИЗ | РегистрСведений.НачислениеПремиальных КАК НачислениеПремиальных |ГДЕ | НачислениеПремиальных.Сотрудник = &Сотрудник | И НачислениеПремиальных.Период = &Период"; Запрос.УстановитьПараметр("Сотрудник",Объект.Сотрудник); Запрос.УстановитьПараметр("Период",Выборка.Период); Выборка1 = Запрос.Выполнить().Выбрать(); Выборка1.Следующий(); Стр.Премиальные = Выборка1.СуммаПремиальных; Запрос.Текст = "ВЫБРАТЬ | НачислениеВыслугиЛет.СуммаВыслуги |ИЗ | РегистрСведений.НачислениеВыслугиЛет КАК НачислениеВыслугиЛет |ГДЕ | НачислениеВыслугиЛет.Сотрудник = &Сотрудник | И НачислениеВыслугиЛет.Период = &Период"; Запрос.УстановитьПараметр("Сотрудник",Объект.Сотрудник); Запрос.УстановитьПараметр("Период",Выборка.Период); Выборка1 = Запрос.Выполнить().Выбрать(); Выборка1.Следующий(); Стр.Выслуга = Выборка1.СуммаВыслуги; Запрос.Текст = "ВЫБРАТЬ | НачислениеОтпусных.СуммаОтпускных |ИЗ | РегистрСведений.НачислениеОтпусных КАК НачислениеОтпусных |ГДЕ | НачислениеОтпусных.Сотрудник = &Сотрудник | И НачислениеОтпусных.Период = &Период"; Запрос.УстановитьПараметр("Сотрудник",Объект.Сотрудник); Запрос.УстановитьПараметр("Период",Выборка.Период); Выборка1 = Запрос.Выполнить().Выбрать(); Выборка1.Следующий(); Стр.Отпускные = Выборка1.СуммаОтпускных; КонецЦикла КонецПроцедуры |
|||
13
Mitriy
11.05.13
✎
20:35
|
гыгы... (11) телепат, однако...
|
|||
14
ИсчадиеADO
11.05.13
✎
20:36
|
(13) без доплаты, уйду, аднака
|
|||
15
ИсчадиеADO
11.05.13
✎
20:38
|
(13) спасибо, дорогой, за портянку. Где там твой составной запрос?
|
|||
16
ИсчадиеADO
11.05.13
✎
20:38
|
(15) к (12)
|
|||
17
EugeniaK
11.05.13
✎
20:42
|
(12) Жуть какая. 3 года в 1С...
Так как именно результат составного запроса обрабатываешь? |
|||
18
Любопытная
11.05.13
✎
20:45
|
Это страшно
|
|||
19
Mitriy
11.05.13
✎
20:45
|
(17) не знать не стыдно... стыдно - не хотеть знать...
|
|||
20
ИсчадиеADO
11.05.13
✎
20:45
|
(12) ты сделай так
ВЫБРАТЬ Т.Сотрудник, СУММА(Т.Ресурс1) КАК Ресурс1, СУММА(Т.Ресурс2) КАК Ресурс2 ИЗ (ВЫБРАТЬ Р1.Сотрудник, Р1.Ресурс1, 0 КАК Ресурс2 ИЗ Регистр.Такойто КАК Р1 ГДЕ Р1.Сотрудник В (&СписокМоихСотрудников) ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ Р2.Сотрудник, 0 КАК Ресурс1 Р2.Ресурс2, ИЗ Регистр.Какойто2 КАК Р2 ГДЕ Р2.Сотрудник В (&СписокМоихСотрудников) ) КАК Т2 СГРУППИРОВАТЬ ПО Т.Сотрудник |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |