|
Помогите плиз с запросом | ☑ | ||
---|---|---|---|---|
0
Alexey_55
29.04.14
✎
11:03
|
Добрый день.
С консоли запросов выводится нужный результат. Если выводить в СКД то он совершенно другой. Подскажите плиз в чем проблема? ВЫБРАТЬ КОНЕЦПЕРИОДА(РегламентированныйПроизводственныйКалендарь.ДатаКалендаря, ДЕНЬ) КАК ДатаРабочая ПОМЕСТИТЬ ВТ_Дни ИЗ РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь ГДЕ РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &НачалоПериодаСрОст И &КонецПериодаСрОст ИНДЕКСИРОВАТЬ ПО ДатаРабочая ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура, ТоварыНаСкладахОстаткиИОбороты.Период КАК Период, ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток ПОМЕСТИТЬ ВТ_Остатки ИЗ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(, , День, , Склад = &Склад) КАК ТоварыНаСкладахОстаткиИОбороты ИНДЕКСИРОВАТЬ ПО Номенклатура, Период ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_Дни.ДатаРабочая, МАКСИМУМ(ВТ_Остатки.Период) КАК ДатаОстатка, ВТ_Остатки.Номенклатура КАК Номенклатура ПОМЕСТИТЬ ВТ_ПериодыСОстатками ИЗ ВТ_Дни КАК ВТ_Дни ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Остатки КАК ВТ_Остатки ПО ВТ_Дни.ДатаРабочая >= ВТ_Остатки.Период СГРУППИРОВАТЬ ПО ВТ_Дни.ДатаРабочая, ВТ_Остатки.Номенклатура ИНДЕКСИРОВАТЬ ПО ДатаОстатка, Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_ПериодыСОстатками.Номенклатура КАК Номенклатура, ВЫРАЗИТЬ(ВЫБОР КОГДА РАЗНОСТЬДАТ(&НачалоПериодаСрОст, &КонецПериодаСрОст, ДЕНЬ) + 1 > 0 И ВТ_Остатки.КоличествоКонечныйОстаток <> 0 ТОГДА ВТ_Остатки.КоличествоКонечныйОстаток / (РАЗНОСТЬДАТ(&НачалоПериодаСрОст, &КонецПериодаСрОст, ДЕНЬ) + 1) КОГДА РАЗНОСТЬДАТ(&НачалоПериодаСрОст, &КонецПериодаСрОст, ДЕНЬ) + 1 = 0 ТОГДА ВТ_Остатки.КоличествоКонечныйОстаток ИНАЧЕ 0 КОНЕЦ КАК ЧИСЛО(15, 5)) КАК СреднийОстЗаДень ИЗ ВТ_ПериодыСОстатками КАК ВТ_ПериодыСОстатками ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Остатки КАК ВТ_Остатки ПО ВТ_ПериодыСОстатками.ДатаОстатка = ВТ_Остатки.Период И ВТ_ПериодыСОстатками.Номенклатура = ВТ_Остатки.Номенклатура |
|||
1
mikecool
29.04.14
✎
11:04
|
в параметрах
|
|||
2
Господин ПЖ
29.04.14
✎
11:05
|
скд умная... выкидывает таблицы не участвующие в выборке если ей не дать по рукам
|
|||
3
Alexey_55
29.04.14
✎
11:08
|
(1) В параметрах виртуальной таблицы при выполнении в консоли запросов я устанавливаю периоды. Это я скопировал с СКД.
|
|||
4
Trainee
29.04.14
✎
11:09
|
Очень может быть, что СКД, навязало период в оборотную таблицу.
Лечится либо более аккуратной работой с параметрами. Попробуй найти консоль, кот. формирует схему СКД и посмотреть как платформа оптимизировала запрос. |
|||
5
Alexey_55
29.04.14
✎
11:09
|
(2) Подскажи плиз как дать по рукам?
|
|||
6
Tateossian
29.04.14
✎
11:12
|
(5) Вот тут
ВЫБРАТЬ ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура, ТоварыНаСкладахОстаткиИОбороты.Период КАК Период, ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток ПОМЕСТИТЬ ВТ_Остатки ИЗ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(, , День, , Склад = &Склад) КАК ТоварыНаСкладахОстаткиИОбороты ИНДЕКСИРОВАТЬ ПО Номенклатура, Период ; Не нужна таблица оборотов |
|||
7
Господин ПЖ
29.04.14
✎
11:12
|
(5) добавить поле из "пропадающей" таблицы в результирующий селект, поставить в Роль - "Обязательное", если пользователю оно не нужно - навтыкать все ограничения какие есть
|
|||
8
Alexey_55
29.04.14
✎
11:18
|
(4) (6) (7) Благодарю, буду пробовать.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |