![]() |
![]() |
![]() |
|
Оптимизировать запрос | ☑ | ||
---|---|---|---|---|
0
Zombi
21.11.13
✎
14:42
|
Как можно оптимизировать запрос:
ВЫБРАТЬ ХозрасчетныйОстатки.Субконто1, СУММА(ХозрасчетныйОстатки.СуммаОстаток) КАК СуммаОстаток, СУММА(ХозрасчетныйОстатки.КоличествоОстаток) КАК КоличествоОстаток, ХозрасчетныйОстатки.Субконто2 ПОМЕСТИТЬ втСебестоимость ИЗ РегистрБухгалтерии.Хозрасчетный.Остатки( &ТочкаАктуальности, Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ТоварыНаСкладах) ИЛИ Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.СырьеИМатериалы), , ) КАК ХозрасчетныйОстатки СГРУППИРОВАТЬ ПО ХозрасчетныйОстатки.Субконто1, ХозрасчетныйОстатки.Субконто2 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ХозрасчетныйОбороты.Субконто1 КАК Номенклатура, МАКСИМУМ(ВЫБОР КОГДА ХозрасчетныйОбороты.СуммаОборотДт > 0 ТОГДА ХозрасчетныйОбороты.Период ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1) КОНЕЦ) КАК ДатаПрихода, МАКСИМУМ(ВЫБОР КОГДА ХозрасчетныйОбороты.СуммаОборотКт > 0 ТОГДА ХозрасчетныйОбороты.Период ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1) КОНЕЦ) КАК ДатаРасхода, МАКСИМУМ(втСебестоимость.КоличествоОстаток) КАК КоличествоОстаток, МАКСИМУМ(втСебестоимость.СуммаОстаток) КАК СтоимостьОстаток, втСебестоимость.Субконто2 КАК Склад ИЗ втСебестоимость КАК втСебестоимость ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Обороты( , , Регистратор, Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ТоварыНаСкладах) ИЛИ Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.СырьеИМатериалы), , , , ) КАК ХозрасчетныйОбороты ПО втСебестоимость.Субконто1 = ХозрасчетныйОбороты.Субконто1 И втСебестоимость.Субконто2 = ХозрасчетныйОбороты.Субконто2 СГРУППИРОВАТЬ ПО ХозрасчетныйОбороты.Субконто1, втСебестоимость.Субконто2 Пытаюсь сделать отчет по неликвидам в БП |
|||
1
Бешеная Нога
21.11.13
✎
14:45
|
Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ТоварыНаСкладах)
ИЛИ Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.СырьеИМатериалы) сделать таблице и использовать условие В проиндексировать Субконто1 и Субконто2 ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Обороты( - эту таблицу получить отдельно и поместить во временную с индексированием |
|||
2
Zombi
21.11.13
✎
14:47
|
(1) Щас попробую
|
|||
3
palpetrovich
21.11.13
✎
14:49
|
тоже не нравится "или", да и "ЗНАЧЕНИЕ(.." - тоже, лучше в параметр наверное
и tit> а что вообще возвращает конструкция: МАКСИМУМ(ВЫБОР КОГДА ХозрасчетныйОбороты.СуммаОборотДт > 0 ТОГДА ХозрасчетныйОбороты.Период ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1) КОНЕЦ) КАК ДатаПрихода, ? |
|||
4
palpetrovich
21.11.13
✎
14:50
|
* tit> = еше, :)
|
|||
5
mikecool
21.11.13
✎
14:51
|
(1) а не эквипенисуально ли это?
|
|||
6
Бешеная Нога
21.11.13
✎
14:53
|
(5) не исключено. а что именно?
|
|||
7
mikecool
21.11.13
✎
14:54
|
(6) ИЛИ vs В
|
|||
8
mikecool
21.11.13
✎
14:54
|
+7 имхо тот же перебор до первого попадания
|
|||
9
palpetrovich
21.11.13
✎
14:56
|
(5) а "ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.СырьеИМатериалы)" и "&СчетСырьеИМатериалы" тоже эквипенисуально?
|
|||
10
Бешеная Нога
21.11.13
✎
14:56
|
(7) та ну
|
|||
11
Zombi
21.11.13
✎
14:57
|
(3) Если был приход, то возвращает дату прихода, если нет то пустую дату
|
|||
12
Zombi
21.11.13
✎
14:58
|
(1) Временную таблицу проиндексированную получил во временную. А как условие задать правильно?
|
|||
13
Zombi
21.11.13
✎
15:11
|
Замена "ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.СырьеИМатериалы)" на "&СчетСырьеИМатериалы" прироста не дала. Время выполнения остается в районе 55 - 60 секунд. Как наложить фмльтр по 2 измерениям Субконто1 и субконто2 одной таблицей?
|
|||
14
mikecool
21.11.13
✎
15:13
|
(9) нет, но время получения значения параметра может быть больше, нежели время получения значения в запросе
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |