|
Разъясните вопрос по виртуальной таблице в запросе | ☑ | ||
---|---|---|---|---|
0
vse_serjezno
26.03.14
✎
16:15
|
Здравствуйте!
Вопрос такой. Задача банальная, нужно вывести список номенклатуры и ее количество в остатках. В запросе, упрощенно говоря, это выглядит так: вложенный запрос соединяется левым соединением с виртуальной табл. РН - Остатки. Задаю условие по складу. В итоге запрос не выводит ту номенклатуру из вложенного запроса, остатков по которой нет на этом складе. В чем проблема? Как получить полный список товаров, не зависимо от того, есть по ним остатки или нет? |
|||
1
Strogg
26.03.14
✎
16:17
|
соединять надо со справочником. Делать Объединение остаточного запроса с запросом по справочнику. В виртуальной таблице нулевых остатков просто нет и не может быть.
|
|||
2
ale-sarin
26.03.14
✎
16:19
|
(0) Условие на склад надо писать не в ГДЕ, а в соединение
|
|||
3
vse_serjezno
26.03.14
✎
16:20
|
(1) Я Вас очень прошу поподробнее про объединение!..
Нужно 2 пакета запроса сделать и объединить их? В остаточный запрос просто РН.Остатки запихнуть? |
|||
4
ptiz
26.03.14
✎
16:20
|
Показывай запрос.
|
|||
5
Strogg
26.03.14
✎
16:23
|
(3) показуй запрос. Пакетов не надо. Обойдемся вложенным объединением:)
|
|||
6
vse_serjezno
26.03.14
✎
16:24
|
ВЫБРАТЬ
ВложенныйЗапрос.Набор, ВложенныйЗапрос.НоменклатураВСоставеНабора, ВложенныйЗапрос.Характеристика, СУММА(ВложенныйЗапрос.Количество) КАК КоличествоВНаборе, СУММА(ОстаткиТоваров.ВНаличииОстаток - ОстаткиТоваров.ВРезервеОстаток) КАК СвободныйОстаток, ВложенныйЗапрос.КоличествоНаборов КАК КоличествоНаборовВНаличии, МИНИМУМ((ОстаткиТоваров.ВНаличииОстаток - ОстаткиТоваров.ВРезервеОстаток) / ВложенныйЗапрос.Количество - 0.5) КАК МожноСобратьНаборов ИЗ (ВЫБРАТЬ СправочникНоменклатура.Ссылка КАК Набор, ВариантыКомплектацииНоменклатурыТовары.Номенклатура КАК НоменклатураВСоставеНабора, ВариантыКомплектацииНоменклатурыТовары.Характеристика КАК Характеристика, ВариантыКомплектацииНоменклатурыТовары.Количество КАК Количество, СвободныеОстаткиОстатки.ВНаличииОстаток - СвободныеОстаткиОстатки.ВРезервеОстаток КАК КоличествоНаборов ИЗ Справочник.ВариантыКомплектацииНоменклатуры.Товары КАК ВариантыКомплектацииНоменклатурыТовары ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВариантыКомплектацииНоменклатуры КАК ВариантыКомплектацииНоменклатуры ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СправочникНоменклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеОстатки.Остатки(&Период, ) КАК СвободныеОстаткиОстатки ПО СправочникНоменклатура.Ссылка = СвободныеОстаткиОстатки.Номенклатура ПО ВариантыКомплектацииНоменклатуры.Владелец = СправочникНоменклатура.Ссылка ПО ВариантыКомплектацииНоменклатурыТовары.Ссылка = ВариантыКомплектацииНоменклатуры.Ссылка ГДЕ ВариантыКомплектацииНоменклатуры.ПометкаУдаления = ЛОЖЬ) КАК ВложенныйЗапрос ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ СвободныеОстаткиОстатки.Номенклатура КАК Номенклатура, СвободныеОстаткиОстатки.ВНаличииОстаток КАК ВНаличииОстаток, СвободныеОстаткиОстатки.ВРезервеОстаток КАК ВРезервеОстаток, СвободныеОстаткиОстатки.Склад КАК Склад ИЗ РегистрНакопления.СвободныеОстатки.Остатки(&Период, ) КАК СвободныеОстаткиОстатки) КАК ОстаткиТоваров ПО ВложенныйЗапрос.НоменклатураВСоставеНабора = ОстаткиТоваров.Номенклатура {ГДЕ (ВложенныйЗапрос.Набор В (&Набор))} СГРУППИРОВАТЬ ПО ВложенныйЗапрос.Набор, ВложенныйЗапрос.НоменклатураВСоставеНабора, ВложенныйЗапрос.Характеристика, ВложенныйЗапрос.КоличествоНаборов |
|||
7
vse_serjezno
26.03.14
✎
16:29
|
Этот запрос бед влож запроса для таблицы остатков
ВЫБРАТЬ ВложенныйЗапрос.Набор, ВложенныйЗапрос.НоменклатураВСоставеНабора, ВложенныйЗапрос.Характеристика, СУММА(ВложенныйЗапрос.Количество) КАК КоличествоВНаборе, СУММА(СвободныеОстаткиОстатки.ВНаличииОстаток - СвободныеОстаткиОстатки.ВРезервеОстаток) КАК СвободныйОстаток, ВложенныйЗапрос.КоличествоНаборов КАК КоличествоНаборовВНаличии, МИНИМУМ((СвободныеОстаткиОстатки.ВНаличииОстаток - СвободныеОстаткиОстатки.ВРезервеОстаток) / ВложенныйЗапрос.Количество - 0.5) КАК МожноСобратьНаборов ИЗ (ВЫБРАТЬ СправочникНоменклатура.Ссылка КАК Набор, ВариантыКомплектацииНоменклатурыТовары.Номенклатура КАК НоменклатураВСоставеНабора, ВариантыКомплектацииНоменклатурыТовары.Характеристика КАК Характеристика, ВариантыКомплектацииНоменклатурыТовары.Количество КАК Количество, СвободныеОстаткиОстатки.ВНаличииОстаток - СвободныеОстаткиОстатки.ВРезервеОстаток КАК КоличествоНаборов ИЗ Справочник.ВариантыКомплектацииНоменклатуры.Товары КАК ВариантыКомплектацииНоменклатурыТовары ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВариантыКомплектацииНоменклатуры КАК ВариантыКомплектацииНоменклатуры ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СправочникНоменклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеОстатки.Остатки(&Период, ) КАК СвободныеОстаткиОстатки ПО СправочникНоменклатура.Ссылка = СвободныеОстаткиОстатки.Номенклатура ПО ВариантыКомплектацииНоменклатуры.Владелец = СправочникНоменклатура.Ссылка ПО ВариантыКомплектацииНоменклатурыТовары.Ссылка = ВариантыКомплектацииНоменклатуры.Ссылка ГДЕ ВариантыКомплектацииНоменклатуры.ПометкаУдаления = ЛОЖЬ) КАК ВложенныйЗапрос ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеОстатки.Остатки(&Период, ) КАК СвободныеОстаткиОстатки ПО ВложенныйЗапрос.НоменклатураВСоставеНабора = СвободныеОстаткиОстатки.Номенклатура {ГДЕ (ВложенныйЗапрос.Набор В (&Набор))} СГРУППИРОВАТЬ ПО ВложенныйЗапрос.Набор, ВложенныйЗапрос.НоменклатураВСоставеНабора, ВложенныйЗапрос.Характеристика, ВложенныйЗапрос.КоличествоНаборов Как мне условие по складу вставить? |
|||
8
ptiz
26.03.14
✎
16:32
|
Условие по складу: в параметры вирт.таблицы .Остатки()
|
|||
9
vse_serjezno
26.03.14
✎
16:33
|
Пробовала, не помогает в моей ситуации.
|
|||
10
vse_serjezno
26.03.14
✎
16:34
|
Т.е. по складу отбирается, но те товары, по которым нет записей в Вирт.Т. просто не выводит.
|
|||
11
ptiz
26.03.14
✎
16:37
|
(9) Покажи как пробовала.
|
|||
12
vse_serjezno
26.03.14
✎
16:49
|
Хм, выяснились новые подробности.
Видимо дело было не в отсутствующих записях в таблице остатков. Я скинула не весь запрос, а его часть, в которой, как мне казалось, была сосредоточена проблема. Сейчас я ограничила этот запрос по складу и он выдал мне то, что нужно. В исходном запросе есть еще один вложенный запрос, при котором как раз товары выводятся не все. Весь изначальный запрос очень большой получается. |
|||
13
vse_serjezno
26.03.14
✎
16:56
|
Да, проблема в нем, судя по всему была.
Большое всем спасибо за помощь и участие!! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |