![]() |
|
Помогите построить запрос.Остатки по всей номенклатуре по каждому складу | ☑ | ||
---|---|---|---|---|
0
protsenkodv
31.08.12
✎
12:11
|
Нужно получить своб остаток по Номенклатуре по каждому складу.
Номенклатура и склад - параметры. Причем если остатка на каком-то складе нет то нужно чтоб в результате все равно выдавался этот склад с остатком 0. И тоже самое по номенклатуре. В моем запросе результат только по тем складам на которых остатки есть. ВЫБРАТЬ ВсяНоменклатура.Номенклатура КАК Номенклатура, СвОстаткиПоВсемСкладам.Склад, СвОстаткиПоВсемСкладам.КоличествоОстаток ИЗ (ВЫБРАТЬ Номенклатура.Ссылка КАК Номенклатура ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ Номенклатура.Ссылка В ИЕРАРХИИ(&Группа)) КАК ВсяНоменклатура ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ Склады.Ссылка КАК Склад, СвОстаткиСклады.Номенклатура КАК Номенклатура, СвОстаткиСклады.КоличествоОстаток КАК КоличествоОстаток ИЗ Справочник.Склады КАК Склады ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ТоварыНаСкладахОстатки.Склад КАК Склад, ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура, ТоварыНаСкладахОстатки.КоличествоОстаток - ЕСТЬNULL(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки( &ДатаКонца, Номенклатура В ИЕРАРХИИ (&Группа) И Склад В (&Склады)) КАК ТоварыНаСкладахОстатки ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки( &ДатаКонца, Номенклатура В ИЕРАРХИИ (&Группа) И Склад В (&Склады)) КАК ТоварыВРезервеНаСкладахОстатки ПО ТоварыНаСкладахОстатки.Номенклатура = ТоварыВРезервеНаСкладахОстатки.Номенклатура И ТоварыНаСкладахОстатки.Склад = ТоварыВРезервеНаСкладахОстатки.Склад) КАК СвОстаткиСклады ПО Склады.Ссылка = СвОстаткиСклады.Склад ГДЕ Склады.Ссылка В(&Склады)) КАК СвОстаткиПоВсемСкладам ПО ВсяНоменклатура.Номенклатура = СвОстаткиПоВсемСкладам.Номенклатура ГДЕ ВсяНоменклатура.Номенклатура.ЭтоГруппа = ЛОЖЬ УПОРЯДОЧИТЬ ПО Номенклатура |
|||
1
Drock
31.08.12
✎
12:13
|
ЕстьNull (Остаток,0)
|
|||
2
mikecool
31.08.12
✎
12:13
|
полное соединение номенклатуры, складов и остатков
|
|||
3
Zmich
31.08.12
✎
12:13
|
Полное соединение делай, а не левое.
|
|||
4
pessok
31.08.12
✎
12:13
|
2пц...
ВЫБРАТЬ СвободныеОстаткиОстаткиИОбороты.Склад, СвободныеОстаткиОстаткиИОбороты.Номенклатура, СвободныеОстаткиОстаткиИОбороты.КоличествоКонечныйОстаток ИЗ РегистрНакопления.СвободныеОстатки.ОстаткиИОбороты( &НачалоПериода, &КонецПериода, , , Склад = &Склад И Номенклатура = &Номенклатура) КАК СвободныеОстаткиОстаткиИОбороты |
|||
5
pessok
31.08.12
✎
12:16
|
у складам слева зацепи этот запрос и естьnull(СвободныеОстаткиОстаткиИОбороты.КоличествоКонечныйОстаток, 0)
|
|||
6
Reset
31.08.12
✎
12:41
|
(0)
Ниже вариант для случая, "когда товара нет ни на одном складе, то не выводить вообще". Если нужно выводить для всех товаров,даже если нигде нет ==> вместо пакета заполняющего НоменклатураВНаличии использовать выборку со справочника номенклатура. Если нужно выводить все склады, даже если на них ничего нет ==> вместо пакета заполняющего СкладыСНаличием использовать выборку со справочника склады.
|
|||
7
protsenkodv
31.08.12
✎
14:29
|
Спасибо за ответы.
Сделал по своему. Вроде получилось. ВЫБРАТЬ ВложенныйЗапрос.Номенклатура, ВложенныйЗапрос.Склады, ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) - ЕСТЬNULL(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток ИЗ (ВЫБРАТЬ Номенклатура.Ссылка КАК Номенклатура, Склады.Ссылка КАК Склады ИЗ Справочник.Номенклатура КАК Номенклатура, Справочник.Склады КАК Склады ГДЕ Номенклатура.Ссылка В ИЕРАРХИИ(&Группа) И Склады.Ссылка В(&Склады)) КАК ВложенныйЗапрос ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки( &ДатаКонца, Номенклатура В ИЕРАРХИИ (&Группа) И Склад В (&Склады)) КАК ТоварыНаСкладахОстатки ПО ВложенныйЗапрос.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура И ВложенныйЗапрос.Склады = ТоварыНаСкладахОстатки.Склад ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки( &ДатаКонца, Номенклатура В ИЕРАРХИИ (&Группа) И Склад В (&Склады)) КАК ТоварыВРезервеНаСкладахОстатки ПО ВложенныйЗапрос.Номенклатура = ТоварыВРезервеНаСкладахОстатки.Номенклатура И ВложенныйЗапрос.Склады = ТоварыВРезервеНаСкладахОстатки.Склад |
|||
8
Sammo
31.08.12
✎
14:31
|
(7) Обычно лучше через временные таблицы, тогда более предсказуемый план в скуле
|
|||
9
protsenkodv
31.08.12
✎
15:33
|
(8) поясните, пожалуста, "более предсказуемый план в скуле".
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |