|
Не работает условие в запросе. | ☑ | ||
---|---|---|---|---|
0
lanc2233
31.07.19
✎
10:00
|
Запрос для динамического списка
ВЫБРАТЬ НоменклатураСпр.Ссылка, ЦеныОбычные.Цена КАК ОбычнаяЦена, ЦеныАкционные.Цена КАК Акция ИЗ Справочник.Номенклатура КАК НоменклатураСпр ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦены = &ТипЦеныОбычная) КАК ЦеныОбычные ПО НоменклатураСпр.Ссылка = ЦеныОбычные.Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦены = &ТипЦеныАкционная) КАК ЦеныАкционные ПО НоменклатураСпр.Ссылка = ЦеныАкционные.Номенклатура ГДЕ ЕСТЬNULL(ЦеныАкционные.Цена,ЕСТЬNULL(ЦеныОбычные.Цена, 0)) > &ЦенаОт Нужно выбрать строки где искомая цена больше значения параметра. Искомая цена это акционная, если она есть, или обычная если нет акционной. С таким запросом, как я написал, выдает все строки, в том числе те где нет ни одной цены. Что с ним не так? |
|||
1
VS-1976
31.07.19
✎
10:03
|
Возможно не передаются параметры, проверь
|
|||
2
Мимохожий Однако
31.07.19
✎
10:09
|
Справочник Номенклатура слева. Не факт, что у него цена установлена. Сделай внутреннее соединение в порядке эксперимента
|
|||
3
НЕА123
31.07.19
✎
10:15
|
(1)+1
(2)+1 немного упростить ГДЕ ЕСТЬNULL(ЦеныАкционные.Цена, ЦеныОбычные.Цена) > &ЦенаОт |
|||
4
lanc2233
31.07.19
✎
10:17
|
даже если в запрос просто >100 написать то не срабатывает.
Есть позиции, где ни одна ни вторая цена не установлена, это я и пытаюсь двумя ЕстьNull обработать |
|||
5
ДядяМитяй
31.07.19
✎
10:20
|
я бы попробовал на два условия с ЕстьNull разбить через ИЛИ. никаких обоснований, просто метод тыка)
|
|||
6
Мимохожий Однако
31.07.19
✎
10:22
|
(4) А теперь еще раз...
Напиши, что ты хочешь в результате, а не что пытался. Каков план запроса? |
|||
7
sqr4
31.07.19
✎
10:22
|
потому что (1)
|
|||
8
ДядяМитяй
31.07.19
✎
10:26
|
+(5) и комментируя в консоли разные условия посмотреть что получится
|
|||
9
hhhh
31.07.19
✎
10:27
|
(4) может там прошлогодние цены есть. или 5-летней давности
|
|||
10
Мимохожий Однако
31.07.19
✎
10:28
|
Еще можно выбросить таблицу справочника номенклатура и оставить только две таблицы из регистра цен
|
|||
11
ДядяМитяй
31.07.19
✎
10:28
|
(9) если это срез последних это актуальные цены. если кому не нравится - пусть заводит цены вовремя ))
|
|||
12
hhhh
31.07.19
✎
10:36
|
(11) ну может у тс другое поминание, может он думает, если цены установлены 10 лет назад, то они уже не актуальны.
|
|||
13
lEvGl
гуру
31.07.19
✎
11:01
|
по-моему ошибка при сравнениях с Null, в Где
попробуйте сначала преобразовать Выбрать ЕстьNull(Цена, 0) Как Цена Выбрать ЕстьNull(Цен2, 0) Как Цена2 Поместить ВТ; Выбрать вт.Номенклатура где ВТ.Цена > 100 |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |