|
sum() + sum() = 0 |
☑ |
0
Eeakie
26.11.14
✎
13:29
|
Добрый день.
Прямым запросом получаю текущие остатки по двум регистрам.
Типы ресурсов: "Количество" - 19.3, "ОстатокТовара" - 10.3.
|select
| Заявка.iddoc as [Заявка $Документ.Заявка],
| $ПЛ.Товар as [Товар $Справочник.Товары],
| О.КоличествоОстаток as ОстатокО,
| ОТО.ОстатокТовараОстаток as ОстатокОТО,
| О.КоличествоОстаток + ОТО.ОстатокТовараОстаток as Всего
|from
| $Документ.Заявка as Заявка with (nolock)
|left join
| $ДокументСтроки.Заявка as СтрокиЗаявка with (nolock) on СтрокиЗаявка.iddoc = Заявка.iddoc
|left join
| $Справочник.Прайс_лист as ПЛ with (nolock) on ПЛ.id = $СтрокиЗаявка.Товар
|left join
| $РегистрОстатки.Ожидания(,, Фирма = :Центролаб) as О on О.Товар = $ПЛ.Товар and О.Заявка = $ВидДокумента36.Заявка + Заявка.iddoc
|left join
| $РегистрОстатки.ОстаткиТоваровОбщ(,, Фирма = :Центролаб) as ОТО on ОТО.Товар = $ПЛ.Товар and ОТО.Заявка = Заявка.iddoc
|where
| $Заявка.КрупнаяПартия = 1";
Предположим ОстатокО = 1, а ОстатокОТО = 0. Всего (ОстатокО + ОстатокОТО) должно же быть 1? А у меня 0.
Что это может быть такое?
|
|
1
GenAcid
26.11.14
✎
13:33
|
1 + 0 = 1, но 1 + null = null
|
|
2
КонецЦикла
26.11.14
✎
13:40
|
Может так
ISNULL(О.КоличествоОстаток,0) + ISNULL(ОТО.ОстатокТовараОстаток,0)
|
|
3
Eeakie
26.11.14
✎
13:45
|
Заработало. Но тогда вопрос в том почему даёт NULL, а не 0?
|
|
4
Михаил Козлов
26.11.14
✎
13:47
|
(3) Потому что в остатках нет.
|
|
5
Ёпрст
гуру
26.11.14
✎
13:48
|
(3) лефт джоин потому что
|
|
6
Eeakie
26.11.14
✎
13:54
|
(5)Как это связано?..
|
|
7
МойКодУныл
26.11.14
✎
13:56
|
(6) Левым соединением связано, это же очевидно
|
|
8
andreymongol82
26.11.14
✎
13:57
|
(6) Непосредственно ). Что будет в результирующей таблице, если в одной есть, строки, а в другой нет
|
|
9
КонецЦикла
26.11.14
✎
13:57
|
(6) Если бы запись была с нулевым остатком - был бы 0
А так пустота...
|
|
10
Ёпрст
гуру
26.11.14
✎
14:01
|
(6)
в табличке заявка у тебя
Документ Товар
док1 Валенки
док1 Сапоги
док1 Варенье
при левом соединение с табличкой O:
Документ Товар Остаток
док1 Валенки 10
будет
Документ Товар Остаток
док1 Валенки 10
док1 Сапоги null
док1 Варенье null
так понятнее ?
|
|
11
Eeakie
26.11.14
✎
14:07
|
Разобрался. Всем спасибо.
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший