![]() |
![]() |
![]() |
|
Оптимизация запроса | ☑ | ||
---|---|---|---|---|
0
Cmyk32
08.03.12
✎
17:58
|
Добрый день!
Решила переписать запрос, используя пакеты. При создании формы нового элемента вызывается процедура заполнения табличной части по принципу объединения данных из двух регистров: Регистр 1: СтатьяБюджета Номенклатура СуммаПоВнутреннемуБюджету Регистр 2: СтатьяБюджета Номенклатура СуммаПоВнешнемуБюджету Табличная часть: СтатьяБюджета Номенклатура СуммаПоВнутреннемуБюджету СуммаПоВнешнемуБюджету Оптимален ли такой запрос? Или лучше использовать вложенные запросы? И насколько "красиво" использовать EстьNULL в подобном контексте? ВЫБРАТЬ ВнутреннийБюджетПроектаОбороты.СтатьяБюджета, ВнутреннийБюджетПроектаОбороты.Номенклатура, ВнутреннийБюджетПроектаОбороты.СуммаОборот ПОМЕСТИТЬ ВнутреннийБюджетПроектаОбороты ИЗ РегистрНакопления.ВнутреннийБюджетПроекта.Обороты(, &КонецПериода, , Проект = &Проект) КАК ВнутреннийБюджетПроектаОбороты ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВнешнийБюджетПроектаОбороты.СтатьяБюджета, ВнешнийБюджетПроектаОбороты.Номенклатура, ВнешнийБюджетПроектаОбороты.СуммаОборот ПОМЕСТИТЬ ВнешнийБюджетПроектаОбороты ИЗ РегистрНакопления.ВнешнийБюджетПроекта.Обороты(, &КонецПериода, , Проект = &Проект) КАК ВнешнийБюджетПроектаОбороты ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ЕСТЬNULL(ВнутреннийБюджетПроектаОбороты.СтатьяБюджета, ВнешнийБюджетПроектаОбороты.СтатьяБюджета) КАК СтатьяБюджета, ЕСТЬNULL(ВнутреннийБюджетПроектаОбороты.Номенклатура, ВнешнийБюджетПроектаОбороты.Номенклатура) КАК Номенклатура, ВнутреннийБюджетПроектаОбороты.СуммаОборот КАК СуммаВнутреннегоБюджета, ВнешнийБюджетПроектаОбороты.СуммаОборот КАК СуммаВнешнегоБюджета ИЗ ВнутреннийБюджетПроектаОбороты КАК ВнутреннийБюджетПроектаОбороты, ВнешнийБюджетПроектаОбороты КАК ВнешнийБюджетПроектаОбороты СГРУППИРОВАТЬ ПО ВнутреннийБюджетПроектаОбороты.СуммаОборот, ЕСТЬNULL(ВнутреннийБюджетПроектаОбороты.СтатьяБюджета, ВнешнийБюджетПроектаОбороты.СтатьяБюджета), ЕСТЬNULL(ВнутреннийБюджетПроектаОбороты.Номенклатура, ВнешнийБюджетПроектаОбороты.Номенклатура), ВнешнийБюджетПроектаОбороты.СуммаОборот |
|||
1
Cmyk32
08.03.12
✎
17:59
|
(0) + Сгруппировать не нужно было
|
|||
2
zak555
08.03.12
✎
18:02
|
> Решила переписать запрос...
все девочки сегодня решили напиться : с 8ым мартом ! |
|||
3
Cmyk32
08.03.12
✎
18:02
|
Вопрос снят! Туплю. Обойдусь одним запросом из одного соединения.
|
|||
4
Cmyk32
08.03.12
✎
18:02
|
(2) Еще не вечер)
|
|||
5
pumbaEO
08.03.12
✎
18:03
|
Вопрос можно? Обороты всегда будут от рождения Христа подгружаться?
|
|||
6
Cmyk32
08.03.12
✎
18:05
|
(5) В этом примере да. По проекту - все обороты.
|
|||
7
Cmyk32
08.03.12
✎
18:07
|
Я просто не на том примере решила пакетные запросы испробовать. Здесь достаточно одного соединения.
|
|||
8
Cmyk32
08.03.12
✎
18:17
|
Есть у кого содержательная статья по пакетным запросам? Только не эта: http://chistov.spb.ru/publ/5-1-0-13
|
|||
9
zak555
09.03.12
✎
10:19
|
(0) такой код работать не будет
|
|||
10
zak555
09.03.12
✎
10:19
|
вернее не вернёт нужного результата
|
|||
11
catena
09.03.12
✎
10:48
|
(8)А чем Чистов не устраивает?
|
|||
12
Cmyk32
09.03.12
✎
11:49
|
(11) Мало
|
|||
13
catena
09.03.12
✎
12:45
|
(12)Хм... Но это всё... :)
|
|||
14
МихаилМ
09.03.12
✎
17:05
|
советую не перемножать множества (фактов)
а складывать. те используйте UNION вместо перемножения. и не нужны будут карявости ЕСТЬNULL() полное перемножение - опасная и редкая операция. также можно проиндексировать временные таблицы |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |