|
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
|
|