![]() |
Сложная связь в запросе Есть регистр сведений с измерением типа Номенклатура и ресурсом типа число (Процент) По некоторым товарам есть записи со значениями и есть запись для пустой ссылки. Надо сформировать запрос где будет выдаваться соответствующие значения для товаров, по которым есть записи. А если нет, то процент для пустой ссылки. Сделал запрос: ВЫБРАТЬ Номенклатура.Ссылка, Номенклатура.Представление, ПроцентыСрезПоследних.Процент ИЗ Справочник.Номенклатура КАК Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Проценты.СрезПоследних КАК ПроцентыСрезПоследних ПО (ВЫБОР КОГДА Номенклатура.Ссылка В (ВЫБРАТЬ РегистрСведений.Проценты.СрезПоследних.Товар ИЗ РегистрСведений.Проценты.СрезПоследних) ТОГДА ПроцентыСрезПоследних.Товар = Номенклатура.Ссылка ИНАЧЕ ПроцентыСрезПоследних.Товар = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) КОНЕЦ) Всё работает. Но мне вообще не нравиться так как это часть огромного запроса, и он будет тормозить весь запрос. Как то можно оптимизировать? |
интересно, как в выборке результа этого запроса получится пустая ссылка? |
Не пустая ссылка, а процент для пустой ссылки. "ПроцентыСрезПоследних.Товар = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)" |
в выборке не будет пустой ссылки, соответственно, и не будет процента для пустой ссылки |
а... тебе нужно для ВСЕХ ссылок, отсутствующих в РС, вывести этот "общий" процент |
2 Uho Ну ты хоть глянь запрос разок... |
Отвлекаясь от самой идеи иметь регистр отсутствующим ресурсом: как можно использовать [b]список[/b] таких записей? Эта консерватория точно правильно построена? |
5-Vel > дык глянул, справочник с левым соединением никогда не даст пустой ссылки, объясняться надо яснее :) по теме: сделай пакетный запрос |
2 VZ "Есть регистр сведений с измерением типа Номенклатура и ресурсом типа число (Процент)" Где отсутствует ресурс??? Типа так Товар | Процент ------------------ Ручка | 23 Пенал | 16 | 10 Что не так? |
6-VZ > как например счета учета номенклатуры (см. 4) ЗЫ. это только мои догадки, автор объяснить не может |
а зачем надо было из левого соединения делать какой-то шутовской балаган? по-нормальному нельзя было написать запрос? |
8-Vel > Вопрос (6) точно прочитал? Или прочитал удобное? А вопрос был конкретным: вот запрсс вывел кучу ссылок записей регистра, где есть [b]только[/b] измерение. Как ты эту кучу процентов используешь, и что они будут представлять? Вот получилась всего 146%. Далее что? Ты Чуров? |
2(10) по нормальному- это как? Потому сюда и пишу, что не нравится 2(9) Что ещё объяснить? Есть справочник Номенклатура. Есть регистр сведений, где для НЕКОТОРЫХ товаров указан ПРОЦЕНТ. Но задача стоит, чтобы для остальных товаров , по которым не введены записи в регистре проставлялся ОПРЕДЕЛЁННЫЙ процент, который со временем может меняться. Что ты предлагаешь? Мне константу под это дело заводить чтоль??? |
ВЫБРАТЬ Номенклатура.Ссылка, Номенклатура.Представление, ПроцентыСрезПоследних.Процент ИЗ Справочник.Номенклатура КАК Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Проценты.СрезПоследних КАК ПроцентыСрезПоследних ПО Номенклатура.Ссылка = ПроцентыСрезПоследних.Товар ОБЪЕДИНИТЬ ВЫБРАТЬ ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка), "", ПроцентыСрезПоследних.Процент ИЗ РегистрСведений.Проценты.СрезПоследних КАК ПроцентыСрезПоследних ГДЕ ПроцентыСрезПоследних.Товар = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) |
12-Vel > Я понял: через жопу - это позиция. Возвышающая... |
[quote=Vel;33383263]Что ты предлагаешь? Мне константу под это дело заводить чтоль??? [/quote] ты читать умеешь? я предложил пакетный запрос. 13-Ирли Бёрд > ему не это надо, он таки объяснил в (12), что хочет |
2(13) И что я получу? Таблицу в которой будут идти товары со своими процентами, товары с пустыми значениями процентов и в конце строка со значением по-умолчанию . Оно мне надо? Приведу пример: 1. В регистре Товар|Процент --------------- Ручка| 23 Пенал| 17 _____| 10 При отборе в запросе по товарам :Ручка, Пенал, Шкаф, Диван он должен выдать Ручка|23 Пенал|17 Шкаф |10 Диван|10 Так понятно? |
16-Vel > ВЫБОР. Ежели нашли, то оно, иначе назначеное число. И не надо беспокоить бабушку эротическими пассами. |
А вообще давно придуманы механизмы для подобного. Например, Цены. |
ВЫБРАТЬ Номенклатура.Ссылка, Номенклатура.Представление, ВЫБОР КОГДА ПроцентыСрезПоследних.Процент НЕ ЕСТЬ NULL ТОГДА ПроцентыСрезПоследних.Процент ИНАЧЕ ПроцентыСрезПоследнихПусто.Процент КОНЕЦ КАК Процент ИЗ Справочник.Номенклатура КАК Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Проценты.СрезПоследних КАК ПроцентыСрезПоследних ПО ПроцентыСрезПоследних.Товар = Номенклатура.Ссылка ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Проценты.СрезПоследних КАК ПроцентыСрезПоследнихПусто ПО ПроцентыСрезПоследнихПусто.Товар = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) |
19-bma1 > в пакетном, имхо, было бы лучше 18-VZ > цены для номенклатуры не устанавливаются "по умолчанию" |
2(20) Цена задается для Товара с характеристиками и "по умолчанию" для Товара с пустой характеристикой. А потом в запросе ищется по аналогии с (0) |
(21) в бухгалтерии такого нет :) |
20-Uho > +1. |
2(20) сделал как в 19. Лучше А чем лучше пакетом? (я серьёзно не понимаю)Если можно в двух словах. |
2(20)имеется ввиду, что не надо много раз получать значение процента для пустой ссылки? |
24-Vel >Вообще-то, в данном случае (сабж) запись с дефолтным значением должна быть единственной, и нЕфиг ее искать каждый раз по новому. Даже если SQL умнее разработчика, и сам сохранит в буфере требуемое значение. Нехорошо это: надеяться на реализацию. |
+23 уточню: [em]...быть единственной для [b]данного документа[/b][/em] |
| Текущее время: 11:57. Часовой пояс GMT +3. |