|
Из временной таблицы выбрать как ТЗ (наподобии выборки табличных частей из дока) | ☑ | ||
---|---|---|---|---|
0
pirate_
04.01.17
✎
18:36
|
Ребят застрял, переделываю чужой отчет, структуры и т.п. менять не могу. много уже чего переделал, в нем но столкнулся с такой гадостью. В оригинале в отчете используется рекурсивная конструкция связанная с получение себестоимости по курсам на даты получения материалов в ней запрос, получаем довольно долгий запрос в цикле. Причем в глубину 1 выполняется 93% и 7% глубже 1. Чтобы ускорить хочу перенести глубину 1 в верхний общий запрос остальные 7% пускай так и выполняются. И теперь собственно вопрос есть первая временная таблица (Номенклатура, документ оприходования, ......, заказ) и вторая временная (Номенклатура, документоприходования, ......, заказ, НоменклатураДляСвязи,ДокументОприходованияДляСвязи), вторая по полям идентична первой кроме добавленных двух полей в конце. Нужно в результате выбрать первую таблицу и по связи Номенклатура=НоменклатураДляСвязи и документоприходования=ДокументОприходованияДляСвязи получить вторую таблицу "одним полем" примерно так как формируются табличные части как поле с ТЗ.
|
|||
1
Джинн
04.01.17
✎
18:52
|
Коллега, ни фига не понял суть вопроса. Поясните подробнее после слов "нужно в результате..".
Кроме того "рекурсивная конструкция связанная с получение себестоимости по курсам на даты получения материалов" на фиг не нужна - периодические значения легко получаются запросом без рекурсии. |
|||
2
pirate_
04.01.17
✎
19:01
|
(1) одним из партия образующих документов есть документ сборка в котором в качестве исходника номенклатура которая были также получена из сборки. Нужно получить себестоимость в некой валюте по материалам по датам поступления, если Вы укажете как сделать это не рекурсивно и не изменяя конфу, буду очень рад
Нужно получить примерно такое: Номенклатура, Документоприходования .... заказ, изчегостостоит(тут ТЗ из второй таблицы по связи Номенклатура=НоменклатураДляСвязи и документоприходования=ДокументОприходованияДляСвязи, может быть и пустая) |
|||
3
Живой Ископаемый
04.01.17
✎
19:10
|
?Пример
|
|||
4
pirate_
04.01.17
✎
19:30
|
(3)
Таблица1 |
|||
5
pirate_
04.01.17
✎
19:36
|
(3)
Таблица1 НОменклатура1 Док1,....,заказ1 НОменклатура1 Док2,....,заказ2 НОменклатура1 Док3,....,заказ3 Таблица2 Номенклатура3, Док4,....,Док2,номенклатура1 Номенклатура4, Док5,....,Док2,номенклатура1 На выходе: НОменклатура1 Док1,....,заказ1, (пусто) НОменклатура1 Док2,....,заказ2, (две строчки из таблицы2) НОменклатура1 Док3,....,заказ3, (пустро) |
|||
6
Живой Ископаемый
04.01.17
✎
19:40
|
Да не обращай внимания. Это я пытаюсь написать на форум текст с юникод-символами: Я?
|
|||
7
Джинн
04.01.17
✎
19:40
|
||||
8
Живой Ископаемый
04.01.17
✎
19:40
|
Но не получается, экранируют
|
|||
9
pirate_
04.01.17
✎
19:53
|
(7) Причем тут это? Даты откуда получить? Суть вопроса не в этом вообще, мне нужно выбрать поле в котором будет ТЗ из таблицы 2, примерно так выбираются данные из табличных частей документа.
|
|||
10
Джинн
04.01.17
✎
21:23
|
(9) документ оприходования.Дата
|
|||
11
pirate_
04.01.17
✎
21:42
|
(10) для тех кто в танке:
одним из партия образующих документов есть документ сборка в котором в качестве исходника номенклатура которая были также получена из сборки. Нужно получить себестоимость в некой валюте по материалам по датам поступления, если Вы укажете как сделать это не рекурсивно и не изменяя конфу, буду очень рад УРОВЕНЬ ВЛОЖЕННОСТИ НЕ 1, а может быть любой, собираются комплектующие даты во партиям соберете не рекурсивно?. И я вообще не это спрашивал, это все у меня есть и работает, посмотрите пример в каком виде мне нужно получить данные. |
|||
12
Джинн
04.01.17
✎
21:54
|
(11) Для тех, кто занятия по русскому языку прогулял и фразу "рекурсивная конструкция связанная с получение себестоимости по курсам на даты получения материалов" понимает как-то по-своему - рекурсию с произвольной глубиной вложенности запросом не получить. Нужна либо процедурная обработка, либо циклически выполняющийся запрос с параметрами.
Но сама задача какая-то странная. На хрена пересчитывать документы по историческому курсу, если они по этому курсу уже пересчитаны в валюту учета? |
|||
13
pirate_
04.01.17
✎
21:59
|
(12) Блин, да мне не нужно получать рекурсию запросом, ВОПРОС НЕ В ЭТОМ. пример что есть и что нужно получить. Не важно для чего, нужно получить в таком виде. Давайте дальше о грамматике поговорим?
|
|||
14
pirate_
04.01.17
✎
22:04
|
(12) Первоначальный вопрос
И теперь собственно вопрос есть первая временная таблица (Номенклатура, документ оприходования, ......, заказ) и вторая временная (Номенклатура, документоприходования, ......, заказ, НоменклатураДляСвязи,ДокументОприходованияДляСвязи), вторая по полям идентична первой кроме добавленных двух полей в конце. Нужно в результате выбрать первую таблицу и по связи Номенклатура=НоменклатураДляСвязи и документоприходования=ДокументОприходованияДляСвязи получить вторую таблицу "одним полем" примерно так как формируются табличные части как поле с ТЗ. Вот пример: Таблица1 НОменклатура1 Док1,....,заказ1 НОменклатура1 Док2,....,заказ2 НОменклатура1 Док3,....,заказ3 Таблица2 Номенклатура3, Док4,....,Заказ4,Док2,номенклатура1 Номенклатура4, Док5,....,Заказ5,Док2,номенклатура1 На выходе: НОменклатура1 Док1,....,заказ1, (пусто) НОменклатура1 Док2,....,заказ2, (две строчки из таблицы2) НОменклатура1 Док3,....,заказ3, (пусто) |
|||
15
Джинн
04.01.17
✎
22:42
|
Что есть "две строчки из таблицы2)"?
|
|||
16
Либерал
04.01.17
✎
23:35
|
(14) ИТОГИ ПО
дальше выборка по группировкам или выгружай в дерево (15) он хочет, чтоб запрос вернул примерно как ВЫБРАТЬ Д.Дата Д.Номер Д.ТабЧастьНапримерТовары ИЗ МойВолшебныйДокументСТабЧастью КАК Д |
|||
17
pirate_
05.01.17
✎
00:15
|
(16) по поводу итоги по, таблицы имеют одинаковые колонки, и должны таким остаться, должна быть вложенная таблица, если бы был бы это МойВолшебныйДокументСТабЧастью все было бы великолепно, но как сделать это из врем таблиц?
|
|||
18
Либерал
05.01.17
✎
00:41
|
пират, не будь таким кровожадным, сделай уже по человечески - ИТОГИ
при условии (как тебе намекнули уже), что сама постановка задачи методически не оч мудацкая |
|||
19
pirate_
05.01.17
✎
11:04
|
(18) Да с удовольствием бы, но отдать данные нужно в таком формате, постановка реально дебильная, и моя часть это оптимизация небольшого куска общей задачи, этот кусок выполнялся 1,5 часа, после оптимизаций 40 мин, дальше при переносе первого уровня рекурсии в "верхний запрос" я получаю данные за 7-10 мин, но они не в том виде в котором нужны, кроме того что получаю там еще куча всего делается и высчитывается по этим данным и это менять я не могу, из-за этого не могу поменять структуру данных получаемых в запросе. Вообще глобально это баланс и финансовые результаты в виртуальной валюте, не спрашиваете для чего, я этого не знаю, моя задача суб-суб подрядная и только ускорить получение данных.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |