Запрос остататки + резервы, а если остаток пустой как вывести резерв?

1. zoeh 31 02.09.22 15:52 Сейчас в теме
Конструктор запросов сделал мне такое
ВЫБРАТЬ
ТоварыНаСкладахОстатки.Склад КАК Склад,
ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,

ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток,
ТоварыВРезервеНаСкладах.Номенклатура КАК Номенклатура1,
ТоварыВРезервеНаСкладах.Склад КАК Склад1,
ТоварыВРезервеНаСкладах.Количество КАК Количество
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
Левое СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах КАК ТоварыВРезервеНаСкладах
ПО ТоварыНаСкладахОстатки.Номенклатура = ТоварыВРезервеНаСкладах.Номенклатура
И ТоварыНаСкладахОстатки.Склад = ТоварыВРезервеНаСкладах.Склад
ГДЕ
ТоварыВРезервеНаСкладах.Номенклатура = &Номенклатура
И ТоварыНаСкладахОстатки.Номенклатура = &Номенклатура
Найденные решения
14. zoeh 31 02.09.22 16:16 Сейчас в теме
Уапсче песня!

ВЫБРАТЬ
ТоварыНаСкладахОстатки.Склад КАК Склад,
ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток,
0 как КоличествоОстатокР
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки(&ВыбДата, Номенклатура = &Номенклатура) КАК ТоварыНаСкладахОстатки

Объединить все

ВЫБРАТЬ
ТоварыВРезервеНаСкладахОстатки.Склад КАК Склад,
ТоварыВРезервеНаСкладахОстатки.Номенклатура КАК Номенклатура,
0 как КоличествоОстаток,
ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстатокР
ИЗ
РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&ВыбДата, Номенклатура = &Номенклатура ) КАК ТоварыВРезервеНаСкладахОстатки
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. RustamZz 02.09.22 16:05 Сейчас в теме
(1) Левое на Полное заменить и все поля через isnull брать
7. glek 119 02.09.22 16:06 Сейчас в теме
(1) Делайте не через соединение, а через объединение.
Sashares; +1 Ответить
2. zoeh 31 02.09.22 15:53 Сейчас в теме
как я понимаю нужно сделать
КОГДА ТоварыНаСкладахОстатки.КоличествоОстаток ЕСТЬ NULL
3. zoeh 31 02.09.22 15:55 Сейчас в теме
ниработаит

ВЫБРАТЬ
ТоварыНаСкладахОстатки.Склад КАК Склад,
ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
ВЫБОР
КОГДА ТоварыНаСкладахОстатки.КоличествоОстаток ЕСТЬ NULL
ТОГДА NULL
ИНАЧЕ ТоварыНаСкладахОстатки.КоличествоОстаток
КОНЕЦ ,
ТоварыВРезервеНаСкладах.Номенклатура КАК Номенклатура1,
ТоварыВРезервеНаСкладах.Склад КАК Склад1,
ТоварыВРезервеНаСкладах.Количество КАК Количество
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
Левое СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах КАК ТоварыВРезервеНаСкладах
ПО ТоварыНаСкладахОстатки.Номенклатура = ТоварыВРезервеНаСкладах.Номенклатура
И ТоварыНаСкладахОстатки.Склад = ТоварыВРезервеНаСкладах.Склад
ГДЕ
ТоварыВРезервеНаСкладах.Номенклатура = &Номенклатура
И ТоварыНаСкладахОстатки.Номенклатура = &Номенклатура
4. mrSallivan 73 02.09.22 16:02 Сейчас в теме
Когда остатка нет, у вас не заполнено поле номенклатура... для начала его заполните.
Выбор Когда ТоварыНаСкладахОстатки.Номенклатура is null Тогда ТоварыВРезервеНаСкладах.Номенклатура Иначе ТоварыНаСкладахОстатки.Номенклатура Конец Как Номенклатура
6. zoeh 31 02.09.22 16:05 Сейчас в теме
ошибку нашел исправил, нон нет не рабит


ВЫБРАТЬ
ТоварыНаСкладахОстатки.Склад КАК Склад,
ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
ВЫБОР
КОГДА ТоварыНаСкладахОстатки.КоличествоОстаток ЕСТЬ NULL
ТОГДА NULL
ИНАЧЕ ТоварыНаСкладахОстатки.КоличествоОстаток
КОНЕЦ КАК Поле1,
ТоварыВРезервеНаСкладахОстатки.Склад КАК Склад1,
ТоварыВРезервеНаСкладахОстатки.Номенклатура КАК Номенклатура1,
ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки(&ВыбДата, ) КАК ТоварыНаСкладахОстатки
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки КАК ТоварыВРезервеНаСкладахОстатки
ПО ТоварыНаСкладахОстатки.Номенклатура = ТоварыВРезервеНаСкладахОстатки.Номенклатура
И ТоварыНаСкладахОстатки.Склад = ТоварыВРезервеНаСкладахОстатки.Склад
ГДЕ
ТоварыНаСкладахОстатки.Номенклатура = &Номенклатура
10. Sashares 34 02.09.22 16:09 Сейчас в теме
(6)Примерно так:

ВЫБРАТЬ
ТоварыНаСкладахОстатки.Склад КАК Склад,
ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток,
0 КАК ВРезерве
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
ГДЕ
ТоварыНаСкладахОстатки.Номенклатура = &Номенклатура 

Объединить все

ВЫБРАТЬ
ТоварыВРезервеНаСкладах.Склад КАК Склад,
ТоварыВРезервеНаСкладах.Номенклатура КАК Номенклатура,
0 КАК КоличествоОстаток,
ТоварыВРезервеНаСкладах.Количество КАК ВРезерве
ИЗ
РегистрНакопления.ТоварыВРезервеНаСкладах КАК ТоварыВРезервеНаСкладах
ГДЕ
ТоварыВРезервеНаСкладах.Номенклатура = &Номенклатура
Показать


И результат сгруппировать.
8. zoeh 31 02.09.22 16:07 Сейчас в теме
ВЫБРАТЬ
ВЫБОР
КОГДА ТоварыНаСкладахОстатки.Номенклатура ЕСТЬ NULL
ТОГДА NULL
ИНАЧЕ ТоварыНаСкладахОстатки.Номенклатура
КОНЕЦ КАК Номенклатура,


ВЫБОР
КОГДА ТоварыНаСкладахОстатки.Склад ЕСТЬ NULL
ТОГДА NULL
ИНАЧЕ ТоварыНаСкладахОстатки.Склад
КОНЕЦ КАК Склад,


ВЫБОР
КОГДА ТоварыНаСкладахОстатки.КоличествоОстаток ЕСТЬ NULL
ТОГДА NULL
ИНАЧЕ ТоварыНаСкладахОстатки.КоличествоОстаток
КОНЕЦ КАК КоличествоОстаток,
ТоварыВРезервеНаСкладахОстатки.Склад КАК Склад1,
ТоварыВРезервеНаСкладахОстатки.Номенклатура КАК Номенклатура1,
ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки(&ВыбДата, ) КАК ТоварыНаСкладахОстатки
Полное СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки КАК ТоварыВРезервеНаСкладахОстатки
ПО ТоварыНаСкладахОстатки.Номенклатура = ТоварыВРезервеНаСкладахОстатки.Номенклатура
И ТоварыНаСкладахОстатки.Склад = ТоварыВРезервеНаСкладахОстатки.Склад
ГДЕ
ТоварыНаСкладахОстатки.Номенклатура = &Номенклатура


не работает


щас буду смотреть как объединение робит
9. mrSallivan 73 02.09.22 16:08 Сейчас в теме
Объединение соединяет две таблицы, но в них должны быть одинаковые колонки.
___________
Параметр Номенклатура пишите не через ГДЕ... а в параметры виртуальной таблицы регистра накопления.
11. zoeh 31 02.09.22 16:12 Сейчас в теме
(7)Спасибо друх!
ВЫБРАТЬ
ТоварыНаСкладахОстатки.Склад КАК Склад,
ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки(&ВыбДата, Номенклатура = &Номенклатура) КАК ТоварыНаСкладахОстатки

Объединить все

ВЫБРАТЬ
ТоварыВРезервеНаСкладахОстатки.Склад КАК Склад,
ТоварыВРезервеНаСкладахОстатки.Номенклатура КАК Номенклатура,
ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток *(-1) КАК КоличествоОстатокР
ИЗ
РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&ВыбДата, Номенклатура = &Номенклатура ) КАК ТоварыВРезервеНаСкладахОстатки
12. zoeh 31 02.09.22 16:13 Сейчас в теме
можно вопрос при объединении он мне в 100% случаях будет давать
остаток минус резерв т.е. свободный остаток?
13. zoeh 31 02.09.22 16:14 Сейчас в теме
(10) действительно круче так!!
14. zoeh 31 02.09.22 16:16 Сейчас в теме
Уапсче песня!

ВЫБРАТЬ
ТоварыНаСкладахОстатки.Склад КАК Склад,
ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток,
0 как КоличествоОстатокР
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки(&ВыбДата, Номенклатура = &Номенклатура) КАК ТоварыНаСкладахОстатки

Объединить все

ВЫБРАТЬ
ТоварыВРезервеНаСкладахОстатки.Склад КАК Склад,
ТоварыВРезервеНаСкладахОстатки.Номенклатура КАК Номенклатура,
0 как КоличествоОстаток,
ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстатокР
ИЗ
РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&ВыбДата, Номенклатура = &Номенклатура ) КАК ТоварыВРезервеНаСкладахОстатки
15. zoeh 31 02.09.22 16:20 Сейчас в теме
Всем спасибо за обучение!
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот