К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Сложная связь в запросе

Гость
0 - 18.12.2013 - 12:40
Есть регистр сведений с измерением типа Номенклатура и ресурсом типа число (Процент)
По некоторым товарам есть записи со значениями и есть запись для пустой ссылки.
Надо сформировать запрос где будет выдаваться соответствующие значения для товаров, по которым есть записи. А если нет, то процент для пустой ссылки.
Сделал запрос:


ВЫБРАТЬ
Номенклатура.Ссылка,
Номенклатура.Представление,
ПроцентыСрезПоследних.Процент
ИЗ
Справочник.Номенклатура КАК Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Проценты.СрезПоследних КАК ПроцентыСрезПоследних
ПО (ВЫБОР КОГДА Номенклатура.Ссылка В (ВЫБРАТЬ РегистрСведений.Проценты.СрезПоследних.Товар ИЗ РегистрСведений.Проценты.СрезПоследних)
ТОГДА ПроцентыСрезПоследних.Товар = Номенклатура.Ссылка
ИНАЧЕ ПроцентыСрезПоследних.Товар = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
КОНЕЦ)

Всё работает. Но мне вообще не нравиться так как это часть огромного запроса, и он будет тормозить весь запрос.

Как то можно оптимизировать?



Uho
1 - 18.12.2013 - 12:44
интересно, как в выборке результа этого запроса получится пустая ссылка?
Гость
2 - 18.12.2013 - 12:46
Не пустая ссылка, а процент для пустой ссылки.
"ПроцентыСрезПоследних.Товар = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)"
Uho
3 - 18.12.2013 - 12:54
в выборке не будет пустой ссылки, соответственно, и не будет процента для пустой ссылки
Uho
4 - 18.12.2013 - 12:56
а... тебе нужно для ВСЕХ ссылок, отсутствующих в РС, вывести этот "общий" процент
Гость
5 - 18.12.2013 - 12:58
2 Uho
Ну ты хоть глянь запрос разок...
Гость
6 - 18.12.2013 - 13:06
Отвлекаясь от самой идеи иметь регистр отсутствующим ресурсом: как можно использовать [b]список[/b] таких записей?

Эта консерватория точно правильно построена?
Uho
7 - 18.12.2013 - 13:10
5-Vel > дык глянул, справочник с левым соединением никогда не даст пустой ссылки, объясняться надо яснее :)

по теме: сделай пакетный запрос
Гость
8 - 18.12.2013 - 13:12
2 VZ
"Есть регистр сведений с измерением типа Номенклатура и ресурсом типа число (Процент)"
Где отсутствует ресурс???
Типа так
Товар | Процент
------------------
Ручка | 23
Пенал | 16
| 10

Что не так?
Uho
9 - 18.12.2013 - 13:12
6-VZ > как например счета учета номенклатуры (см. 4)
ЗЫ. это только мои догадки, автор объяснить не может
10 - 18.12.2013 - 13:17
а зачем надо было из левого соединения делать какой-то шутовской балаган?
по-нормальному нельзя было написать запрос?
Гость
11 - 18.12.2013 - 13:21
8-Vel > Вопрос (6) точно прочитал? Или прочитал удобное?
А вопрос был конкретным: вот запрсс вывел кучу ссылок записей регистра, где есть [b]только[/b] измерение. Как ты эту кучу процентов используешь, и что они будут представлять? Вот получилась всего 146%. Далее что?
Ты Чуров?
Гость
12 - 18.12.2013 - 13:25
2(10) по нормальному- это как?
Потому сюда и пишу, что не нравится

2(9) Что ещё объяснить?

Есть справочник Номенклатура. Есть регистр сведений, где для НЕКОТОРЫХ товаров указан ПРОЦЕНТ.
Но задача стоит, чтобы для остальных товаров , по которым не введены записи в регистре проставлялся ОПРЕДЕЛЁННЫЙ процент, который со временем может меняться. Что ты предлагаешь? Мне константу под это дело заводить чтоль???
13 - 18.12.2013 - 13:26
ВЫБРАТЬ
Номенклатура.Ссылка,
Номенклатура.Представление,
ПроцентыСрезПоследних.Процент
ИЗ
Справочник.Номенклатура КАК Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Проценты.СрезПоследних КАК ПроцентыСрезПоследних
ПО Номенклатура.Ссылка = ПроцентыСрезПоследних.Товар

ОБЪЕДИНИТЬ

ВЫБРАТЬ
ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка),
"",
ПроцентыСрезПоследних.Процент
ИЗ
РегистрСведений.Проценты.СрезПоследних КАК ПроцентыСрезПоследних
ГДЕ
ПроцентыСрезПоследних.Товар = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
Гость
14 - 18.12.2013 - 13:29
12-Vel > Я понял: через жопу - это позиция. Возвышающая...
Uho
15 - 18.12.2013 - 13:31
[quote=Vel;33383263]Что ты предлагаешь? Мне константу под это дело заводить чтоль??? [/quote]
ты читать умеешь? я предложил пакетный запрос.

13-Ирли Бёрд > ему не это надо, он таки объяснил в (12), что хочет
Гость
16 - 18.12.2013 - 13:32
2(13) И что я получу?
Таблицу в которой будут идти товары со своими процентами, товары с пустыми значениями процентов
и в конце строка со значением по-умолчанию . Оно мне надо?
Приведу пример:
1. В регистре
Товар|Процент
---------------
Ручка| 23
Пенал| 17
_____| 10
При отборе в запросе по товарам :Ручка, Пенал, Шкаф, Диван он должен выдать

Ручка|23
Пенал|17
Шкаф |10
Диван|10

Так понятно?
Гость
17 - 18.12.2013 - 14:13
16-Vel > ВЫБОР. Ежели нашли, то оно, иначе назначеное число.
И не надо беспокоить бабушку эротическими пассами.
Гость
18 - 18.12.2013 - 14:22
А вообще давно придуманы механизмы для подобного. Например, Цены.
19 - 18.12.2013 - 15:04
ВЫБРАТЬ
Номенклатура.Ссылка,
Номенклатура.Представление,
ВЫБОР КОГДА ПроцентыСрезПоследних.Процент НЕ ЕСТЬ NULL
ТОГДА ПроцентыСрезПоследних.Процент
ИНАЧЕ ПроцентыСрезПоследнихПусто.Процент КОНЕЦ КАК Процент

ИЗ
Справочник.Номенклатура КАК Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Проценты.СрезПоследних КАК ПроцентыСрезПоследних
ПО ПроцентыСрезПоследних.Товар = Номенклатура.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Проценты.СрезПоследних КАК ПроцентыСрезПоследнихПусто
ПО ПроцентыСрезПоследнихПусто.Товар = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
Uho
20 - 18.12.2013 - 15:14
19-bma1 > в пакетном, имхо, было бы лучше
18-VZ > цены для номенклатуры не устанавливаются "по умолчанию"
21 - 18.12.2013 - 16:29
2(20) Цена задается для Товара с характеристиками и "по умолчанию" для Товара с пустой характеристикой. А потом в запросе ищется по аналогии с (0)
Uho
22 - 18.12.2013 - 16:37
(21) в бухгалтерии такого нет :)
Гость
23 - 18.12.2013 - 20:44
20-Uho > +1.
Гость
24 - 19.12.2013 - 13:05
2(20) сделал как в 19. Лучше
А чем лучше пакетом? (я серьёзно не понимаю)Если можно в двух словах.
Гость
25 - 19.12.2013 - 13:18
2(20)имеется ввиду, что не надо много раз получать значение процента для пустой ссылки?
Гость
26 - 19.12.2013 - 13:23
24-Vel >Вообще-то, в данном случае (сабж) запись с дефолтным значением должна быть единственной, и нЕфиг ее искать каждый раз по новому. Даже если SQL умнее разработчика, и сам сохранит в буфере требуемое значение.
Нехорошо это: надеяться на реализацию.
Гость
27 - 19.12.2013 - 13:27
+23 уточню: [em]...быть единственной для [b]данного документа[/b][/em]


К списку вопросов






Copyright ©, Все права защищены