![]() |
|
Рекурсия в запросе | ☑ | ||
---|---|---|---|---|
0
myr4ik07
16.09.16
✎
09:09
|
Есть запрос1
ВЫБРАТЬ НастройкиКПИ.Группа, НастройкиКПИ.Значение ИЗ РегистрСведений.НастройкиКПИ КАК НастройкиКПИ СГРУППИРОВАТЬ ПО НастройкиКПИ.Группа, НастройкиКПИ.Значение и есть запрос2 ВЫБРАТЬ ОПзС.НоменклатураИзделие КАК НоменклатураИзделие, МАКСИМУМ(ОПзС.ДатаПлан) КАК ДатаПлан, МАКСИМУМ(ОПзС.ОтчетПроизводстваЗаСмену.ПереданыКомплектующиеНаСборкуДата) КАК ПереданыКомплектующиеНаСборкуДата ИЗ РегистрСведений.ОПзС КАК ОПзС ГДЕ ОПзС.ДатаПлан МЕЖДУ &Начало И &Конец И ОПзС.СерийныйНомерИзделия = ОПзС.СерийныйНомер И ОПзС.Операция = &Операция И ОПзС.ОтчетПроизводстваЗаСмену.Проведен И ОПзС.Номенклатура.Родитель В ИЕРАРХИИ(&Родитель) СГРУППИРОВАТЬ ПО ОПзС.НоменклатураИзделие как то в одном запросе нужно из запроса2 все ОПзС проверить есть ли в Иерархии каждая ОПзС в запрос1 с условием Запрос1.Группа |
|||
1
myr4ik07
16.09.16
✎
09:10
|
короче нужно проверить находиться ли каждая ОПзС в одной из список групп из запрос1
|
|||
2
FIXXXL
16.09.16
✎
09:10
|
второй в ВТ и ВТ соединить с первым
есть там поля соединения? |
|||
3
myr4ik07
16.09.16
✎
09:12
|
(2) есть Запрос2.ОПзС.Родитель = Запрос1.Настройка
это и там и там Родитель в справочнике ОПзС ЭтоГРуппа |
|||
4
myr4ik07
16.09.16
✎
09:12
|
(2) есть поля соединения, смотри (3)
|
|||
5
FIXXXL
16.09.16
✎
09:14
|
(4) попробуй:
ОПзС.Номенклатура.Родитель В ИЕРАРХИИ(ВЫБРАТЬ *тут первый запрос*) |
|||
6
myr4ik07
16.09.16
✎
09:18
|
(5) т.е. это будет показано только ту номенклатуру которая присутствует в Запрос1.Настройки, верно?
|
|||
7
Fragster
гуру
16.09.16
✎
09:21
|
если по иерархии - то это делается двумя наборами данных в СКД. еще удобно сделать доп. регистр с данными для nested sets и использовать его в запросах для соединения
|
|||
8
myr4ik07
16.09.16
✎
09:23
|
(7) к сожалению не использую скд
|
|||
9
Fragster
гуру
16.09.16
✎
09:24
|
(8) тогда либо портянка с .родитель.родитель... либо доп. РС
|
|||
10
myr4ik07
16.09.16
✎
09:25
|
(9) понял, спасибо
|
|||
11
myr4ik07
16.09.16
✎
09:51
|
Ребята, помогите додумать
ВЫБРАТЬ ОПзС.НоменклатураИзделие КАК НоменклатураИзделие, МАКСИМУМ(ОПзС.ДатаПлан) КАК ДатаПлан, МАКСИМУМ(ОПзС.ОтчетПроизводстваЗаСмену.ПереданыКомплектующиеНаСборкуДата) КАК Передано, НастройкиКПИ.Группа, ВЫБОР КОГДА НастройкиКПИ.Значение ЕСТЬ NULL ТОГДА 3 ИНАЧЕ НастройкиКПИ.Значение КОНЕЦ КАК Значение, ДОБАВИТЬКДАТЕ(ОПзС.ДатаПлан, ДЕНЬ, -ВЫБОР КОГДА НастройкиКПИ.Значение ЕСТЬ NULL ТОГДА 3 ИНАЧЕ НастройкиКПИ.Значение КОНЕЦ) КАК КоличествоДней ИЗ РегистрСведений.ОПзС КАК ОПзС ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиКПИ КАК НастройкиКПИ ПО ОПзС.Номенклатура.Родитель = НастройкиКПИ.Группа ГДЕ ОПзС.ДатаПлан МЕЖДУ &Начало И &Конец И ОПзС.СерийныйНомерИзделия = ОПзС.СерийныйНомер И ОПзС.Операция = &Операция И ОПзС.ОтчетПроизводстваЗаСмену.Проведен И ОПзС.Номенклатура.Родитель В ИЕРАРХИИ(&Родитель) СГРУППИРОВАТЬ ПО ОПзС.НоменклатураИзделие, НастройкиКПИ.Группа, ВЫБОР КОГДА НастройкиКПИ.Значение ЕСТЬ NULL ТОГДА 3 ИНАЧЕ НастройкиКПИ.Значение КОНЕЦ, ДОБАВИТЬКДАТЕ(ОПзС.ДатаПлан, ДЕНЬ, -ВЫБОР КОГДА НастройкиКПИ.Значение ЕСТЬ NULL ТОГДА 3 ИНАЧЕ НастройкиКПИ.Значение КОНЕЦ) сейчас работает только с Родителем, а подродитель не захватывает, т.е. когда я в РС.НастройкиКПИ выставляю значение НастройкиКПИ.Группа = Ставлю подродитель то при соединении получаю налл, а нужно получить подродителя |
|||
12
myr4ik07
16.09.16
✎
10:07
|
что то типа этого вышло
ВЫБРАТЬ ОПзС.НоменклатураИзделие КАК НоменклатураИзделие, МАКСИМУМ(ОПзС.ДатаПлан) КАК ДатаПлан, МАКСИМУМ(ОПзС.ОтчетПроизводстваЗаСмену.ПереданыКомплектующиеНаСборкуДата) КАК Передано, НастройкиКПИ.Группа, ВЫБОР КОГДА НастройкиКПИ.Значение ЕСТЬ NULL ТОГДА 3 ИНАЧЕ НастройкиКПИ.Значение КОНЕЦ КАК Значение, ДОБАВИТЬКДАТЕ(ОПзС.ДатаПлан, ДЕНЬ, -ВЫБОР КОГДА НастройкиКПИ.Значение ЕСТЬ NULL ТОГДА 3 ИНАЧЕ НастройкиКПИ.Значение КОНЕЦ) КАК КоличествоДней ИЗ РегистрСведений.ОПзС КАК ОПзС ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиКПИ КАК НастройкиКПИ ПО (ОПзС.Номенклатура.Родитель В (НастройкиКПИ.Группа) ИЛИ ОПзС.Номенклатура.Родитель.Родитель В (НастройкиКПИ.Группа) ИЛИ ОПзС.Номенклатура.Родитель.Родитель.Родитель В (НастройкиКПИ.Группа) ИЛИ ОПзС.Номенклатура.Родитель.Родитель.Родитель.Родитель В (НастройкиКПИ.Группа)) ГДЕ ОПзС.ДатаПлан МЕЖДУ &Начало И &Конец И ОПзС.СерийныйНомерИзделия = ОПзС.СерийныйНомер И ОПзС.Операция = &Операция И ОПзС.ОтчетПроизводстваЗаСмену.Проведен И ОПзС.Номенклатура.Родитель В ИЕРАРХИИ(&Родитель) СГРУППИРОВАТЬ ПО ОПзС.НоменклатураИзделие, НастройкиКПИ.Группа, ВЫБОР КОГДА НастройкиКПИ.Значение ЕСТЬ NULL ТОГДА 3 ИНАЧЕ НастройкиКПИ.Значение КОНЕЦ, ДОБАВИТЬКДАТЕ(ОПзС.ДатаПлан, ДЕНЬ, -ВЫБОР КОГДА НастройкиКПИ.Значение ЕСТЬ NULL ТОГДА 3 ИНАЧЕ НастройкиКПИ.Значение КОНЕЦ) УПОРЯДОЧИТЬ ПО Значение |
|||
13
xafavute
16.09.16
✎
10:12
|
(9) можно еще замыкание построить
|
|||
14
xafavute
16.09.16
✎
10:16
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |