|
Помогите составить запрос :-( | ☑ | ||
---|---|---|---|---|
0
ВаликТР
04.01.14
✎
02:13
|
Добрый день всем! Помогите, пожалуйста составить запрос...
есть структура СПРАВОЧНИК Номенклатура РЕКВИЗИТ Изображение ... ТАБЛИЧНАЯ ЧАСТЬ Аналоги ПОЛЕ НоменклатураАналог (тип - Спр.Номенклатура) рекв. Изображение ... Нужно при отсутствии Изображения в Номенклатуре получить Изображение которое есть в любом из его ТЧ Аналоги.НоменклатураАналог. и получить такой результат -------------------------- Номенклатура | Изображение -------------------------- Извините, если непонятно изложил - исправлюсь. |
|||
1
ВаликТР
04.01.14
✎
02:30
|
Вернее результат должен быть такой
----------------------------------------------------------------- № | Номенклатура | НоменклатураАналог | Изображение ----------------------------------------------------------------- 1. Объектив Olympus FE45 <Основное> 2. Объектив Olympus FE5000 Объектив Olympus FE5010 <Основное> ----------------------------------------------------------------- Вторая строка означает, что для номенклатуры "Объектив Olympus FE5000" не нашлось картинки и она взята из НоменклатураАналог "Объектив Olympus FE5010"... Как-то так... |
|||
2
wertyu
04.01.14
✎
02:41
|
тут рекурсия, запросом не сделать
|
|||
3
КонецЦикла
04.01.14
✎
03:12
|
В любом - значит не имеет значения какой брать?
Ну так выбирай одновременно изображение и какой-нить там макс или первый из ТЧ Далее Case when ... |
|||
4
DirecTwiX
04.01.14
✎
03:22
|
(2) ?
Выбрать А.Ссылка Поместить БезИзображений Из Справочник.Номенклатура Где А.Изображения = ПустаяСсылка; Выбрать А.Ссылка, А.Аналог Поместить ИзображенияАналогов Из Справочник.Номенклатура.Аналоги КАК А Где А.Аналог В (Выбрать * ИЗ БезИзображений) И А.Аналог.Изображение <> ПустаяСсылка; Далее делаешь соединений всей с ИзображенияАналогов, и группировку |
|||
5
Лефмихалыч
04.01.14
✎
09:47
|
(0) выноси изображения из справочника в регистр сведений. Немедленно. По двум причинам:
1. Все эти изображения читаются вместе с объектом при ЛЮБОМ к нему обращении 2. То, что ты хочешь, из табличных частей получать гораздо сложнее, чем из РС |
|||
6
mikecool
04.01.14
✎
09:54
|
(5) чем ТЧ принципиально отличается от РС?
|
|||
7
Лефмихалыч
04.01.14
✎
09:56
|
(6) в данном случае удобнее сразу пристегнуть левым соединением РС, чем городить всякие выборы "ЕСЛИТОИНАЧЕ". Ну и РС позволяет все изображения хранить в одной таблице, а так у него какие-то пикчи в одной таблице, какие-то в другой и хрен поймешь, что да где. Архитектура сейчас гогно, простите
|
|||
8
ВаликТР
04.01.14
✎
11:43
|
(5) Конфигурация на сопровождении.
|
|||
9
ВаликТР
04.01.14
✎
12:22
|
(4) Я с запросами только начал, до ВТ еще не дошел. Спасибо DirecTwiX за почин.
Получил все изображения из Номенклатуры затем из Аналогов отобрал отсутствующие ВЫБРАТЬ Номенклатура.Ссылка КАК Ссылка, Номенклатура.ОсновноеИзображение ПОМЕСТИТЬ ОсновныеИзображения ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ Номенклатура.ОсновноеИзображение <> ЗНАЧЕНИЕ(Справочник.ХранилищеДополнительнойИнформации.ПустаяСсылка) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Аналог.Ссылка, Аналог.НоменклатураАналог.ОсновноеИзображение ИЗ Справочник.Номенклатура.Аналоги КАК Аналог ГДЕ Аналог.НоменклатураАналог.ОсновноеИзображение <> ЗНАЧЕНИЕ(Справочник.ХранилищеДополнительнойИнформации.ПустаяСсылка) И НЕ Аналог.Ссылка В (ВЫБРАТЬ ОсновныеИзображения.Ссылка ИЗ ОсновныеИзображения) В результате получил из Аналогов несколько записей к одной Номенклатуре ------------------------------------------------------------------ Ссылка | НоменклатураАналог | Изображение ------------------------------------------------------------------ Объектив Olympus T100 Объектив Olympus X760 основное Объектив Olympus T100 Объектив Olympus X785 основное ------------------------------------------------------------------ А как получить только одну (пусть первую) - куда вставить инструкцию "ПЕРВЫЕ 1" |
|||
10
DirecTwiX
04.01.14
✎
12:31
|
(9) Написал же, что группировать надо по номенклатуре, использую МАКС() например. Вроде есть такая возможность
|
|||
11
ВаликТР
04.01.14
✎
12:53
|
(10) Спасибо, упустил. Все получилось.
Спасибо также всем, кто откликнулся. Даже намеками. Задача решена. (одна из тысячи :-) |
|||
12
ВаликТР
04.01.14
✎
13:04
|
ИТОГ
ВЫБРАТЬ Номенклатура.Ссылка КАК Ссылка, Номенклатура.ОсновноеИзображение ПОМЕСТИТЬ ОсновныеИзображения ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ Номенклатура.ОсновноеИзображение <> ЗНАЧЕНИЕ(Справочник.ХранилищеДополнительнойИнформации.ПустаяСсылка) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Аналог.Ссылка, Аналог.НоменклатураАналог КАК НоменклатураАналог, МАКСИМУМ(Аналог.НоменклатураАналог.ОсновноеИзображение) КАК НоменклатураАналогОсновноеИзображение, Аналог.НоменклатураАналог.Код КАК Код ИЗ Справочник.Номенклатура.Аналоги КАК Аналог ГДЕ Аналог.НоменклатураАналог.ОсновноеИзображение <> ЗНАЧЕНИЕ(Справочник.ХранилищеДополнительнойИнформации.ПустаяСсылка) И НЕ Аналог.Ссылка В (ВЫБРАТЬ ОсновныеИзображения.Ссылка ИЗ ОсновныеИзображения) СГРУППИРОВАТЬ ПО Аналог.Ссылка, Аналог.НоменклатураАналог, Аналог.НоменклатураАналог.Код ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ Номенклатура.Ссылка, NULL, Номенклатура.ОсновноеИзображение, Номенклатура.Код ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ Номенклатура.ОсновноеИзображение <> ЗНАЧЕНИЕ(Справочник.ХранилищеДополнительнойИнформации.ПустаяСсылка) Получил ------------------------------------------------------------------------------------------------------- ссылка | Аналог | Изображение | Код ------------------------------------------------------------------------------------------------------- Аккумулятор Canon NB-2L <> 00021177 Аккумулятор Canon NB-2LH Аккумулятор Canon NB-2L <> 00021177 ------------------------------------------------------------------------------------------------------- Дублей по Номенклатуре Нет. Изображение выбрано или из самой Номенклатуры, или, при отсутствии из одного из его Аналогов. Последнее поде мне и нужно было для формирования имени файла для сохранения на диске. |
|||
13
marvak
04.01.14
✎
13:17
|
(0)
Может соединить справочник с его табличной частью и уже потом анализировать заполненность/незаполненность Изображений? Типа такого: ВЫБРАТЬ Номенклатура.Ссылка, МАКСИМУМ(ВЫБОР КОГДА Номенклатура.Изображение // тут добавить проверку на пустое значение Номенклатура.Изображение ТОГДА Аналоги.Номенклатура.Изображение ИНАЧЕ Номенклатура.Изображение КОНЕЦ) КАК ИскомоеИзображение ИЗ Справочник.Номенклатура КАК Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура.Аналоги КАК Аналоги ПО Аналоги.Ссылка = Номенклатура.Ссылка СГРУППИРОВАТЬ ПО Номенклатура.Ссылка // Ну еще добавить проверку на NULL для Аналоги.Номенклатура для случая когда ТЧ Аналоги не заполнена |
|||
14
ВаликТР
04.01.14
✎
13:56
|
(13) Там NULL не бывает.
|
|||
15
marvak
04.01.14
✎
14:06
|
(14)
Если ТЧ "Аналоги" не заполнена, то в поле Аналоги.Номенклатура после левого соединения будет NULL |
|||
16
Coldboy
04.01.14
✎
15:05
|
(5) а почему тогда, в КА к справочнику крепят изображения, например договор контрагента и в регистр не выносят ...
|
|||
17
wertyu
04.01.14
✎
17:14
|
(4) потому что картинка может быть например только у аналога аналога или глубже
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |