![]() |
|
Оптимизация запроса (документы с несколькими доп. реквизитами) | ☑ | ||
---|---|---|---|---|
0
Mefistophel
25.03.13
✎
12:04
|
Доброго дня. Есть острое желание получить таблицу, содержащую: ссылку на документ, сумму по строкам документа, и 2 доп. реквизита (которые через планы видов характеристик в стандартном функционале БП, например, реализованы) причем реквизиты имеют разные типы и видеть их хочется в разных колонках, дабы получить итоговые суммы именно по ним.
Что я для этого делаю: ВЫБРАТЬ ВложенныйЗапрос.Объект КАК Объект, ВложенныйЗапрос.ПодразделениеЗатрат КАК ПодразделениеЗатрат, ВложенныйЗапрос1.Значение КАК Значение ИЗ (ВЫБРАТЬ ЗначенияСвойствОбъектов.Объект КАК Объект, ЗначенияСвойствОбъектов.Значение КАК ПодразделениеЗатрат ИЗ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов ГДЕ ЗначенияСвойствОбъектов.Свойство = &СвойствоЗдания И ЗначенияСвойствОбъектов.Объект.Дата МЕЖДУ &НачПериода И &КонПериода) КАК ВложенныйЗапрос ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ЗначенияСвойствОбъектов.Объект КАК Объект, ЗначенияСвойствОбъектов.Значение КАК Значение ИЗ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов ГДЕ ЗначенияСвойствОбъектов.Свойство = &СвойствоСтатья И ЗначенияСвойствОбъектов.Объект.Дата МЕЖДУ &НачПериода И &КонПериода) КАК ВложенныйЗапрос1 ПО ВложенныйЗапрос.Объект.Ссылка = ВложенныйЗапрос1.Объект.Ссылка а потом это все через левое соединение приписывается к движениям по хозрасчетному приведенная часть отрабатывает очень долго и отжирает немало памяти притом. Я пытался максимально упростить условия, пытался вынести все в отдельну табличку - не помогло. Может кто подскажет как можно это красивее переделать\доделать? |
|||
1
Maxus43
25.03.13
✎
12:13
|
а обязательно все объекты тянуть? тяни нужные
|
|||
2
H A D G E H O G s
25.03.13
✎
12:14
|
Убить ап стену.
|
|||
3
Maxus43
25.03.13
✎
12:15
|
пакетные запросы наше всё. Соединение с вложенными не есть добро как правило
|
|||
4
H A D G E H O G s
25.03.13
✎
12:15
|
Объект.Дата
Феерия смеха и звука. Да еще во вложенном. |
|||
5
H A D G E H O G s
25.03.13
✎
12:15
|
(3) Там скорее
Объект.Дата |
|||
6
Maxus43
25.03.13
✎
12:16
|
(5) увидел. да, 100% он, но и таки соединение с вложенными тоэ не гуд
|
|||
7
kosts
25.03.13
✎
12:18
|
(0) ВложенныйЗапрос.Объект.Ссылка - Объект это и так ссылка, не нужно получать ссылку ссылки
|
|||
8
Mefistophel
25.03.13
✎
12:18
|
эммм.. по поводу даты - это было отчаяние, и без него все печально, забыл подтереть, да.
|
|||
9
kosts
25.03.13
✎
12:20
|
(0) ПО ВложенныйЗапрос.Объект.Ссылка = ВложенныйЗапрос1.Объект.Ссылка
Это тоже глупо, если не существует одного значения, то второе исчезнет и не получишь ни одного... |
|||
10
H A D G E H O G s
25.03.13
✎
12:20
|
А прикиньте, вот таким вот пацанам дали бы update и truncate всякий.
|
|||
11
H A D G E H O G s
25.03.13
✎
12:22
|
(0) Что за тип документа?
|
|||
12
kosts
25.03.13
✎
12:24
|
(0) ЗначенияСвойствОбъектов для каждого документа имеет одно значение определенного свойства. По этому нет смысла делать что-то во вложенных или временных запросах. Правильно присоединяй значения свойств к своим документам и усё будет тип-топ.
|
|||
13
H A D G E H O G s
25.03.13
✎
12:27
|
ВЫБРАТЬ
РеализацияТоваровУслугТовары.Ссылка, СУММА(РеализацияТоваровУслугТовары.Сумма) КАК Сумма ПОМЕСТИТЬ СуммыДокументов ИЗ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары ГДЕ РеализацияТоваровУслугТовары.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаКонца СГРУППИРОВАТЬ ПО РеализацияТоваровУслугТовары.Ссылка ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ЗначенияСвойствОбъектов.Объект, МАКСИМУМ(ВЫБОР КОГДА ЗначенияСвойствОбъектов.Свойство = &СвойствоСтатья ТОГДА ЗначенияСвойствОбъектов.Значение КОНЕЦ) КАК Статья, МАКСИМУМ(ВЫБОР КОГДА ЗначенияСвойствОбъектов.Свойство = &СвойствоЗдание ТОГДА ЗначенияСвойствОбъектов.Значение КОНЕЦ) КАК Здание ПОМЕСТИТЬ Свойства ИЗ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов ГДЕ ЗначенияСвойствОбъектов.Объект В (ВЫБРАТЬ СуммыДокументов.Ссылка ИЗ СуммыДокументов КАК СуммыДокументов) И ЗначенияСвойствОбъектов.Свойство В (&СвойствоЗдания, &СвойствоСтатья) СГРУППИРОВАТЬ ПО ЗначенияСвойствОбъектов.Объект ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Свойства.Объект, Свойства.Статья, Свойства.Здание, СуммыДокументов.Сумма ИЗ СуммыДокументов КАК СуммыДокументов ВНУТРЕННЕЕ СОЕДИНЕНИЕ Свойства КАК Свойства ПО СуммыДокументов.Ссылка = Свойства.Объект |
|||
14
H A D G E H O G s
25.03.13
✎
12:29
|
Ну или Левое в последнем запросе, если хочется документы.
|
|||
15
Maxus43
25.03.13
✎
12:31
|
(14) или просто соеденить без использования ВТ, как в (12).
Надо сравнить ещё скорость бы |
|||
16
H A D G E H O G s
25.03.13
✎
12:35
|
(15) Скорость норм.
|
|||
17
H A D G E H O G s
25.03.13
✎
12:35
|
Автор, ну ты че там?
|
|||
18
Maxus43
25.03.13
✎
12:37
|
(16) сравнил? без ВТ который
|
|||
19
H A D G E H O G s
25.03.13
✎
12:38
|
(18) Мне - лениво.
|
|||
20
H A D G E H O G s
25.03.13
✎
12:39
|
У меня нет базы со свойствами к документам, а там, где тестировал - выполнилось за 3 секунды и вывело 51к документов с суммами из 71к.
|
|||
21
Mefistophel
25.03.13
✎
12:40
|
(11) несколько
(17) отвлекли, сейчас гляну, спасибо |
|||
22
Mefistophel
25.03.13
✎
12:43
|
(9) в этом вся соль. нужно получить суммы по тем, где все (оба доп. реквизита) заполнено, чтобы остальные документы хм... выделялись из общей массы.
|
|||
23
H A D G E H O G s
25.03.13
✎
12:46
|
(22) Почему это выясняется к 22 посту?
|
|||
24
Mefistophel
25.03.13
✎
12:47
|
(23) вообще в (0) написано было:
причем реквизиты имеют разные типы и видеть их хочется в разных колонках, дабы получить итоговые суммы именно по ним |
|||
25
H A D G E H O G s
25.03.13
✎
12:55
|
(24) Ну так все есть в (13), доп. документы добавь в 1 запрос объедитнением.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |