![]() |
|
v7: Получить остатки, в т.ч. и нулевые ПрямымЗапросом 1c++ | ☑ | ||
---|---|---|---|---|
0
botman4
06.06.17
✎
12:19
|
Запрос выполняю через " Класс ПрямойЗапрос " к DBF
Есть вот такой запрос: |SELECT |Спр.ID as [Товар :Справочник.Товары], |(select ОстатокТовараОстаток from $РегистрОстатки.ОстаткиТоваров( , , , ОстатокТовара) where Товар = Спр.ID) прОстаток, |Спр.МинОстаток as [МинОст :Число.15.5] |FROM Справочник.Товары as Спр |WHERE Спр.IsFolder = 2 |AND Спр.МинОстаток > 0 |AND Спр.МинОстаток > прОстаток |AND Спр.ISMARK <> '*'"; Получается, что если остаток = НУЛЮ то он не попадает сюда. Делал запрос число к select * from $РегистрОстатки.ОстаткиТоваров( , , , ОстатокТовара) в выборке только Остатки <> 0 .... Подскажите пож как обойти такое ? |
|||
1
AntiBuh
06.06.17
✎
12:24
|
может лефт джойн сделать?
|
|||
2
VladZ
06.06.17
✎
12:26
|
Вариант 1:
Выбрать данные из справочника номенклатура плюс левое соединение с остатками. Вариант 2. Выбрать данные из справочника номенклатура плюс нулевое значение остатков плюс юнион алл с остатками. |
|||
3
ADirks
06.06.17
✎
14:26
|
AND (прОстаток Is Null OR Спр.МинОстаток > прОстаток)
|
|||
4
botman4
06.06.17
✎
14:48
|
(3) Точняк! null ))) спс
|
|||
5
botman4
06.06.17
✎
16:17
|
Сработал еще один вариант:
|SELECT |Спр.ID as [Товар :Справочник.Товары], |IFNULL((select ОстатокТовараОстаток from $РегистрОстатки.ОстаткиТоваров( , , , ОстатокТовара) where Товар = Спр.ID), 0) прОстаток, |Спр.МинОстаток as [МинОст :Число.15.5] |FROM Справочник.Товары as Спр |WHERE Спр.IsFolder = 2 |AND Спр.МинОстаток > 0 |AND Спр.МинОстаток > прОстаток |AND Спр.ISMARK <> '*'"; |
|||
6
AliAksA
08.06.17
✎
10:57
|
(5) красиво
|
|||
7
Chameleon1980
08.06.17
✎
11:05
|
блин. Да самое первое было
лефт джойн номенклатуры с остатками |
|||
8
Sserj
08.06.17
✎
11:31
|
(5) Тебе не кажется что выполнять запрос по остатку для КАЖДОГО элемента номенклатуры жирновато?
:) ВЫБРАТЬ $Спр.ТекущийЭлемент КАК [Товар $Справочник.Товары] , ВЫБОР КОГДА Рег.Товар IS NULL Тогда 0 ИНАЧЕ Рег.ОстатокТовараОстаток КОНЕЦ КАК [Остаток $Число] ИЗ Справочник.Товары as Спр ЛЕВОЕ СОЕДИНЕНИЕ $РегистрОстатки.ОстаткиТоваров( , ,(Товар) , (ОстатокТовара)) КАК Рег $Спр.ТекущийЭлемент = Рег.Товар ГДЕ $Спр.МинОстаток > 0 И $Спр.МинОстаток > прОстаток И $Спр.ПометкаУдаления = 0 |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |