![]() |
![]() |
|
помогите с запросом! | ☑ | ||
---|---|---|---|---|
0
mzelensky
22.03.12
✎
09:47
|
Доброго времени суток!
Уже очень долго бьюсь над одним запросом (ниже приведу его часть): ВЫБРАТЬ Док_ЗаказПокупателя.Ответственный КАК МенеджерКС, ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.Контрагент КАК Контрагент, ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента КАК ДоговорКонтрагента, РеализацияТоваровУслуг.СуммаДокумента, ЕСТЬNULL(РеализацияТоваровУслуг.ИсточникЗаказа, ЗНАЧЕНИЕ(Перечисление.ИсточникЗаказа.ПустаяСсылка)) КАК ИсточникЗаказа ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки( &ДатаНач, ДокументРасчетовСКонтрагентом ССЫЛКА Документ.РеализацияТоваровУслуг) КАК ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя КАК Док_ЗаказПокупателя ПО РеализацияТоваровУслуг.Сделка.Ссылка = Док_ЗаказПокупателя.Ссылка ПО ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.Ссылка = РеализацияТоваровУслуг.Ссылка ГДЕ ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом ССЫЛКА Документ.РеализацияТоваровУслуг И ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.Сделка ССЫЛКА Документ.ЗаказПокупателя И ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента.ВидДоговора = &ВидДоговора И ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.СуммаВзаиморасчетовОстаток > 0 И Док_ЗаказПокупателя.Проведен = ИСТИНА И РеализацияТоваровУслуг.Проведен = ИСТИНА И Док_ЗаказПокупателя.Ответственный.ФизЛицо В(&ССотр) И РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНачала И &ДатаКонца И Док_ЗаказПокупателя.Дата МЕЖДУ &ДатаНачала И &ДатаКонца И (ЕСТЬNULL(РеализацияТоваровУслуг.ИсточникЗаказа, ЗНАЧЕНИЕ(Перечисление.ИсточникЗаказа.ПустаяСсылка)) = ЗНАЧЕНИЕ(Перечисление.ИсточникЗаказа.ЗаказОтКлиента) ИЛИ ЕСТЬNULL(РеализацияТоваровУслуг.ИсточникЗаказа, ЗНАЧЕНИЕ(Перечисление.ИсточникЗаказа.ПустаяСсылка)) = ЗНАЧЕНИЕ(Перечисление.ИсточникЗаказа.ЗаказФаксПочта)) Запрос выполняется ОЧЕНЬ ДОЛГО!!! При этом если убрать из него "Документ.ЗаказПокупателя КАК Док_ЗаказПокупателя" (первые редакции запроса были без него), то отрабатывает все довольно шустренько, но сейчас стоит задача вытащить "Ответственного по заказу". Вытаскивать ответственного просто из "ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.Сделка.Ответственный" не позволяет Скул - превышение количества таблиц. В результате пришлось переписать на ЭТО...но что-то ума дать не могу... |
|||
1
golden-pack
22.03.12
✎
09:49
|
ВЫРАЗИТЬ ()
|
|||
2
mzelensky
22.03.12
✎
09:51
|
(1) выразить кого?
|
|||
3
golden-pack
22.03.12
✎
09:56
|
"ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.Сделка.Ответственный" не позволяет Скул - превышение количества таблиц
|
|||
4
hhhh
22.03.12
✎
09:58
|
(2) ну вместо
ГДЕ ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом ССЫЛКА Документ.РеализацияТоваровУслуг И ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.Сделка ССЫЛКА Документ.ЗаказПокупателя написать НЕ (ВЫРАЗИТЬ(ВЫРАЗИТЬ(ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом КАК Документ.РеализацияТоваровУслуг ).Сделка КАК Документ.ЗаказПокупателя) ЕСТЬ NULL) |
|||
5
Rovan
гуру
22.03.12
✎
09:58
|
вместо
ПО РеализацияТоваровУслуг.Сделка.Ссылка = Док_ЗаказПокупателя.Ссылка нельзя ли ПО РеализацияТоваровУслуг.Ссылка = Док_ЗаказПокупателя.Ссылка |
|||
6
mzelensky
22.03.12
✎
10:00
|
(5) И ЧТО ЭТО БУДЕТ??? Как реализация может быть равна заказу?
|
|||
7
golden-pack
22.03.12
✎
10:00
|
(6) ну ты и лол
ПО РеализацияТоваровУслуг.Сделка = Док_ЗаказПокупателя.Ссылка |
|||
8
Rovan
гуру
22.03.12
✎
10:01
|
(+5) тфу!!
вместо ПО РеализацияТоваровУслуг.Сделка.Ссылка = Док_ЗаказПокупателя.Ссылка нельзя ли ПО РеализацияТоваровУслуг.Сделка = Док_ЗаказПокупателя.Ссылка |
|||
9
mzelensky
22.03.12
✎
10:01
|
(4) интересная связка, ща попробую
|
|||
10
mzelensky
22.03.12
✎
10:03
|
(8) это не принципиально - согласен, что не очень красиво, но на производительность сильно (так сильно) влиять не должно.
|
|||
11
golden-pack
22.03.12
✎
10:04
|
(10) принципиально
|
|||
12
Maxus43
22.03.12
✎
10:07
|
(10) составные типы следует приводить к определённому значению. это аксиома. Если не требуется работа со всеми типами из составных
|
|||
13
mzelensky
22.03.12
✎
10:07
|
(4) чуток быстрее стало, но все-равно медленнее, чем было без "Документ.ЗаказПокупателя"
|
|||
14
mzelensky
22.03.12
✎
10:08
|
(12) приводить через "ВЫРАЗИТЬ", как в (4) ?
|
|||
15
Maxus43
22.03.12
✎
10:09
|
(14) без Выразить тянет столько таблиц, сколько типов. с выразить - конкретную таблицу. отсюда и ошибка была что слишком много таблиц
|
|||
16
mzelensky
22.03.12
✎
10:12
|
(15) ща попробую переделать первоначальный вариант на "ВЫРАЗИТЬ"
|
|||
17
ptrtss
22.03.12
✎
10:15
|
ВЫБРАТЬ
Док_ЗаказПокупателя.Ответственный КАК МенеджерКС, ОстаткиРасчетов.Контрагент КАК Контрагент, ОстаткиРасчетов.ДоговорКонтрагента КАК ДоговорКонтрагента, РеализацияТоваровУслуг.СуммаДокумента ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки( &ДатаНач, ДокументРасчетовСКонтрагентом ССЫЛКА Документ.РеализацияТоваровУслуг И ДоговорКонтрагента.ВидДоговора = &ВидДоговора) КАК ОстаткиРасчетов ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг ПО ОстаткиРасчетов.ДокументРасчетовСКонтрагентом = РеализацияТоваровУслуг.Ссылка И (РеализацияТоваровУслуг.Проведен) И (РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНачала И &ДатаКонца) ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя КАК Док_ЗаказПокупателя ПО (РеализацияТоваровУслуг.Сделка = Док_ЗаказПокупателя.Ссылка) И (Док_ЗаказПокупателя.Проведен) И (Док_ЗаказПокупателя.Ответственный.ФизЛицо В (&ССотр)) И (Док_ЗаказПокупателя.Дата МЕЖДУ &ДатаНачала И &ДатаКонца) ГДЕ ОстаткиРасчетов.СуммаВзаиморасчетовОстаток > 0 |
|||
18
ptrtss
22.03.12
✎
10:15
|
(17) В таком духе
|
|||
19
mzelensky
22.03.12
✎
10:30
|
Переделал все на "Выразить" и полностью убрал "Документ.ЗаказПокупателя" и "Документ.РеализацияТоваровУслуг" - теперь отрабатывает все супер :)
Спасибо всем! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |