|
Откуда может быть Null в поле запроса | ☑ | ||
---|---|---|---|---|
0
Andreyyy
27.05.16
✎
00:21
|
ВЫБРАТЬ
ТоварыДокумента.Номенклатура, ТоварыДокумента.Характеристика, ТоварыДокумента.Количество ПОМЕСТИТЬ ТоварыВДокументе ИЗ &ТоварыДокумента КАК ТоварыДокумента ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ СУММА(ТоварыВДокументе.Количество * ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0)) КАК СебестоимостьПоДокументу ИЗ ТоварыВДокументе КАК ТоварыВДокументе ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних( &ДатаОкончание, ВидЦены = &ВидЦены И Номенклатура В (ВЫБРАТЬ ТоварыВДокументе.Номенклатура ИЗ ТоварыВДокументе КАК ТоварыВДокументе)) КАК ЦеныНоменклатурыСрезПоследних ПО ТоварыВДокументе.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура И ТоварыВДокументе.Характеристика = ЦеныНоменклатурыСрезПоследних.Характеристика ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ СУММА(ЕСТЬNULL(ВложенныйЗапрос.ВНаличииОстаток, 0) * ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0)) КАК СебестоимостьПоСкладу ИЗ (ВЫБРАТЬ ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура, ТоварыНаСкладахОстатки.Характеристика КАК Характеристика, ТоварыНаСкладахОстатки.ВНаличииОстаток КАК ВНаличииОстаток ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаОкончание, Склад = &Склад) КАК ТоварыНаСкладахОстатки ГДЕ ТоварыНаСкладахОстатки.ВНаличииОстаток > 0) КАК ВложенныйЗапрос ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаОкончание, ВидЦены = &ВидЦены) КАК ЦеныНоменклатурыСрезПоследних ПО ВложенныйЗапрос.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура И ВложенныйЗапрос.Характеристика = ЦеныНоменклатурыСрезПоследних.Характеристика ; //////////////////////////////////////////////////////////////////////////////// УНИЧТОЖИТЬ ТоварыВДокументе А конкретно СУММА(ЕСТЬNULL(ВложенныйЗапрос.ВНаличииОстаток, 0) * ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0)) КАК СебестоимостьПоСкладу |
|||
1
Сергиус
27.05.16
✎
00:39
|
(0)В каком поле? Если говорить впринципе, то из-за соединения.
|
|||
2
Andreyyy
27.05.16
✎
01:16
|
(1) >А конкретно
СУММА(ЕСТЬNULL(ВложенныйЗапрос.ВНаличииОстаток, 0) * ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0)) КАК СебестоимостьПоСкладу 1 |
|||
3
youalex
27.05.16
✎
01:26
|
ну, вроде как вместо СУММА(ЕСТЬNULL(ВложенныйЗапрос.ВНаличииОстаток, 0)
есть смысл написать ISNULL(СУММА(ВложенныйЗапрос.ВНаличииОстаток), 0) Но не уверен - лень проверять что выдает СУММА() если значений вообще нет. |
|||
4
Andreyyy
27.05.16
✎
01:41
|
Типа эту функцию
СУММА(ЕСТЬNULL(ВложенныйЗапрос.ВНаличииОстаток, 0) * ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0)) обернуть еще в ЕСТЬNULL ? Скорее всего отработает, спасибо за идею. Но однако неясно почему в текущем варианте бывает "Null". При каких стечениях обстоятельств и версиях платформы происходит - не разбирался. |
|||
5
youalex
27.05.16
✎
01:49
|
(4) ну или так. Но достаточно первый аргумент обернуть, т.к. второй уже - обернут)). Опять же есть смысл проверить (и поделиться лишний раз) - что выдает СУММА() если все - NULLы.
Кстати (отдельно от темы) - почему на клаве английское s (мн.ч.) - это русское ы. Вот так вопрос(с) |
|||
6
Andreyyy
27.05.16
✎
02:17
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |