Доброго времени суток! Имеется запрос на получение остатков на каждый день. Номенклатура показывается только та, по которой когда-либо были движения. Хочу, чтобы показывало всю номенклатуру не зависимо от наличия движений. Пытаюсь с результатом остатков сделать "ОБЪЕДИНИТЬ ВСЕ" со справочником Номенклатура. Однако показывает только ту номенклатуру по которой были движения. Спасибо!
(2) Объединение тоже можно или все же будем упираться в категоричность: только Левое или Правое
Номеклатура.Ссылка КАК Товар,
0 КАК Остаток
......
ИЗ Справочник.Номенклатура КАК Номенклатура
ОБЪЕДИНИТЬ ВСЕ
Остатки.Номенклатура,
Остатки.КонечныйОстаток
....
ИЗ Регистр.....(&ДатаОстатков) КАК Остатки
....
СГРУППИРОВАТЬ ПО
Показать
так не прокатит получить остатки по всей номенклатуре, даже если не было остатков и оборотов по некоторым элементам?
Прокатывает и часто я вообще не группирую в запросе - это делает за меня СКД, а соединение в запросе на больших таблицах работает медленнее.
А так: мухи отдельно - катлеты отдельны. Мух много и подзапросик прост. Катлет мало, но и подзапрос сложнее.
я не знаю почему мне ничто не подсказывает, что я что-то делаю не так - вероятно я грешен.
во-первых голословно, т.к. нет сравнительной статистики. Основное время в таких запросах уходит
на работу запроса с оборотными регистрами. Далее более прожорливы по времени соединения, еще далее
группировка. "Объединить все" наименее прожорливо даже если СУБД "жует" миллионы записей.
во-вторых, как я писал выше группировку записей я оставляю СКД, а она сама решает, что оптимально
Можно еще полдня решать, что оптимальнее и каждый, вероятно, будет прав. Особенность в том, что я часто
работаю с таблицами где номенклатуры 200К записей, а в оборотных регистрах 20КК - 300КК и что оптимальнее для меня
я уже решил, но это не значит, что мои решения подходят всем и каждому.
а весь этот сыр-бор я затеял с одной простой мыслью-пожеланием: не будьте так категоричны в суждениях "только левое или только правое"... "не оптимально" и т.п. . Все относительно в мире баз данных как и в любой другой вселенной, где есть NULL(пустота) и разные виды материи(данных).
Даже если так написать, все равно объединение не сработает
ВЫБРАТЬ
ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
ТоварыНаСкладахОстатки.ВНаличииОстаток КАК ВНаличииОстаток
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки(&Период, ) КАК ТоварыНаСкладахОстатки
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
Номенклатура.Ссылка КАК Номенклатура,
0 КАК ВНаличииОстаток
ИЗ
Справочник.Номенклатура КАК Номенклатура
СГРУППИРОВАТЬ ПО Номенклатура
ВЫБРАТЬ
ВЛОЖЗапрос.Номенклатура КАК Номенклатура,
СУММА(ВЛОЖЗапрос.ВНаличииОстаток) КАК ВНаличииОстаток
ИЗ
(ВЫБРАТЬ
ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
ТоварыНаСкладахОстатки.ВНаличииОстаток КАК ВНаличииОстаток
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки(&Период, ) КАК ТоварыНаСкладахОстатки
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
Номенклатура.Ссылка,
0
ИЗ
Справочник.Номенклатура КАК Номенклатура) КАК ВЛОЖЗапрос
СГРУППИРОВАТЬ ПО
ВЛОЖЗапрос.Номенклатура