Еще очень нудна помощь с запросом
ПЖЛ, помогите
Проблема в том, что остатки выводятся для 5000 строк, а вот когда соединение с приходом (скажем за 2 дня), то остается 60 строк
т.е. если прихода не было, то и не выводятся строки с номенклатурой и остатками.
Правое соединение тоже не работает.
КАК сделать, чтобы получить и остатки по всем номенклатуре, если их нет, тогда нули, и колонки с приходом по дням если были для этой номенклатуры.
ПЖЛ, помогите
//Получаем остатки на начало месяца
ВЫБРАТЬ
СвободныеОстаткиОстатки.Номенклатура КАК Номенклатура,
СвободныеОстаткиОстатки.Склад КАК Склад,
ЕСТЬNULL(СвободныеОстаткиОстатки.ВНаличииОстаток, 0) КАК ОстатокНачалоМесяца
ПОМЕСТИТЬ ВТОстатки
ИЗ
РегистрНакопления.СвободныеОстатки.Остатки(НАЧАЛОПЕРИОДА(&ДатаНачала, МЕСЯЦ), ) КАК СвободныеОстаткиОстатки
{ГДЕ
СвободныеОстаткиОстатки.Номенклатура.*}
;
//// Получаем колонку с начальным остатком и все приходы по товарам
ВЫБРАТЬ
ВТОстатки.ОстатокНачалоМесяца КАК ОстатокНачалоМесяца,
ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
ТоварыНаСкладахОстаткиИОбороты.Склад КАК Склад,
ТоварыНаСкладахОстаткиИОбороты.ВНаличииНачальныйОстаток КАК ВНаличииНачальныйОстаток,
ТоварыНаСкладахОстаткиИОбороты.ВНаличииКонечныйОстаток КАК ВНаличииКонечныйОстаток,
ТоварыНаСкладахОстаткиИОбороты.ВНаличииПриход КАК ВНаличииПриход,
ТоварыНаСкладахОстаткиИОбороты.ВНаличииОборот КАК ВНаличииОборот,
ТоварыНаСкладахОстаткиИОбороты.ВНаличииРасход КАК ВНаличииРасход,
ТоварыНаСкладахОстаткиИОбороты.ПериодДень КАК ПериодДень
ИЗ
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНачала, &ДатаОкончания, Авто, , ) КАК ТоварыНаСкладахОстаткиИОбороты
ЛЕВОЕ СОЕДИНЕНИЕ ВТОстатки КАК ВТОстатки
ПО ТоварыНаСкладахОстаткиИОбороты.Номенклатура = ВТОстатки.Номенклатура
ГДЕ
ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПриобретениеТоваровУслуг
ПоказатьПроблема в том, что остатки выводятся для 5000 строк, а вот когда соединение с приходом (скажем за 2 дня), то остается 60 строк
т.е. если прихода не было, то и не выводятся строки с номенклатурой и остатками.
Правое соединение тоже не работает.
КАК сделать, чтобы получить и остатки по всем номенклатуре, если их нет, тогда нули, и колонки с приходом по дням если были для этой номенклатуры.
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
КАК сделать, чтобы получить и остатки по всем номенклатуре, если их нет, тогда нули, и колонки с приходом по дням если были для этой номенклатуры.
Ну так сначала надо получить тот состав номенклатуры, который хочется видеть в итоговом результате, и уже его потом соединять с необходимыми показателями.
(3) Как соединить 2 строки в одну? Помогитееее
ВЫБРАТЬ
СвободныеОстаткиОстатки.Номенклатура КАК Номенклатура,
СвободныеОстаткиОстатки.Склад КАК Склад,
ЕСТЬNULL(СвободныеОстаткиОстатки.ВНаличииОстаток, 0) КАК ОстатокНачалоМесяца,
0 КАК ВНаличииНачальныйОстаток,
0 КАК ВНаличииПриход,
0 КАК ВНаличииРасход,
0 КАК ВНаличииКонечныйОстаток,
0 КАК ПериодДень
ИЗ
РегистрНакопления.СвободныеОстатки.Остатки(НАЧАЛОПЕРИОДА(&ДатаНачала, МЕСЯЦ), ) КАК СвободныеОстаткиОстатки
{ГДЕ
СвободныеОстаткиОстатки.Номенклатура.*}
ОБЪЕДИНИТЬ
ВЫБРАТЬ
ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
ТоварыНаСкладахОстаткиИОбороты.Склад КАК Склад,
0 КАК ОстатокНачалоМесяца,
ТоварыНаСкладахОстаткиИОбороты.ВНаличииНачальныйОстаток КАК ВНаличииНачальныйОстаток,
ТоварыНаСкладахОстаткиИОбороты.ВНаличииПриход КАК ВНаличииПриход,
ТоварыНаСкладахОстаткиИОбороты.ВНаличииРасход КАК ВНаличииРасход,
ТоварыНаСкладахОстаткиИОбороты.ВНаличииКонечныйОстаток КАК ВНаличииКонечныйОстаток,
ТоварыНаСкладахОстаткиИОбороты.ПериодДень КАК ПериодДень
ИЗ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНачала, &ДатаОкончания, Авто, , ) КАК ТоварыНаСкладахОстаткиИОбороты
ГДЕ
ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПриобретениеТоваровУслуг
ПоказатьПрикрепленные файлы:
(1)Вы же выбираете ЛЕВОЕ СОЕДИНЕНИЕ, соответственно остатки добавляются только к приходам. Если вам нужны все остатки сделайте ПОЛНОЕ СОЕДИНЕНИЕ.
И ещё должно быть так:
И соединение должно быть не только по номенклатуре, но и по складу.
И ещё должно быть так:
//// Получаем колонку с начальным остатком и все приходы по товарам
ВЫБРАТЬ
ЕСТЬNULL(ВТОстатки.ОстатокНачалоМесяца, 0) КАК ОстатокНачалоМесяца,
И соединение должно быть не только по номенклатуре, но и по складу.
(6) Если условие из ГДЕ перенести в ПО, то будут все остатки и не будет выпуска продукции.
Правое соединение это экзотика. Лучше переставить местами таблицы и использовать левое соединение.
Как-то так:
Правое соединение это экзотика. Лучше переставить местами таблицы и использовать левое соединение.
Как-то так:
ИЗ
ВТОстатки КАК ВТОстатки
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНачала, &ДатаОкончания, Авто, , ) КАК ТоварыНаСкладахОстаткиИОбороты
ПО ТоварыНаСкладахОстаткиИОбороты.Номенклатура = ВТОстатки.Номенклатура
И ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПриобретениеТоваровУслуг
ВЫБРАТЬ
СвободныеОстаткиОстатки.Номенклатура КАК Номенклатура,
СвободныеОстаткиОстатки.Склад КАК Склад,
ЕСТЬNULL(СвободныеОстаткиОстатки.ВНаличииОстаток, 0) КАК ОстатокНачалоМесяца
ПОМЕСТИТЬ ВТОстатки
ИЗ
РегистрНакопления.СвободныеОстатки.Остатки(НАЧАЛОПЕРИОДА(&ДатаНачала, МЕСЯЦ), ) КАК СвободныеОстаткиОстатки
{ГДЕ
СвободныеОстаткиОстатки.Номенклатура.*}
;
//// Получаем колонку с начальным остатком и все приходы по товарам
ВЫБРАТЬ
ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
ТоварыНаСкладахОстаткиИОбороты.Склад КАК Склад,
ТоварыНаСкладахОстаткиИОбороты.ВНаличииНачальныйОстаток КАК ВНаличииНачальныйОстаток,
ТоварыНаСкладахОстаткиИОбороты.ВНаличииКонечныйОстаток КАК ВНаличииКонечныйОстаток,
ТоварыНаСкладахОстаткиИОбороты.ВНаличииПриход КАК ВНаличииПриход,
ТоварыНаСкладахОстаткиИОбороты.ВНаличииОборот КАК ВНаличииОборот,
ТоварыНаСкладахОстаткиИОбороты.ВНаличииРасход КАК ВНаличииРасход,
ТоварыНаСкладахОстаткиИОбороты.ПериодДень КАК ПериодДень
ПОМЕСТИТЬ ВТПриходы
ИЗ
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНачала, &ДатаОкончания, Авто, , ) КАК ТоварыНаСкладахОстаткиИОбороты
ГДЕ
ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПриобретениеТоваровУслуг
;
ВЫБРАТЬ
ЕстьNULL(ВТОстатки.ОстатокНачалоМесяца,0) КАК ОстатокНачалоМесяца,
ВТПриходы.Номенклатура КАК Номенклатура,
ВТПриходы.Склад КАК Склад,
ЕстьNULL(ВТПриходы.ВНаличииНачальныйОстаток,0) КАК ВНаличииНачальныйОстаток,
ЕстьNULL(ВТПриходы.ВНаличииКонечныйОстаток,0) КАК ВНаличииКонечныйОстаток,
ЕстьNULL(ВТПриходы.ВНаличииПриход,0) КАК ВНаличииПриход,
ЕстьNULL(ВТПриходы.ВНаличииОборот,0) КАК ВНаличииОборот,
ЕстьNULL(ВТПриходы.ВНаличииРасход,0) КАК ВНаличииРасход,
ВТПриходы.ПериодДень КАК ПериодДень
ИЗ
ВТПриходы КАК ВТПриходы
ПОЛНОЕ СОЕДИНЕНИЕ ВТОстатки КАК ВТОстатки
ПО ВТПриходы.Номенклатура = ВТОстатки.Номенклатура
И ВТПриходы.Склад= ВТОстатки.Склад
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот