1.
Гость
06.03.21 17:39
Здравствуйте, дорогие форумчане. Мне в запросе нужны пары условий. Я написал, но это не работает. Помогите, пожалуйста.
*КоличествоТоваровИтог.Количество - это количество товара в заказе клиента.
Нужен такой результат:
1 - Товар полностью не отгружен,
2 - Отгружена часть товара,
3 - Товар полностью отгружен.
У меня почему то у всех документов заказа результат 0. Помогите, пожалуйста
ВЫБОР
КОГДА ЕСТЬNULL(ОстаткиЗаказовКлиента.ЗаказаноОстаток, 0) <> 0
ТОГДА ВЫБОР
КОГДА ОстаткиЗаказовКлиента.ЗаказаноОстаток = КоличествоТоваровИтог.Количество
ТОГДА 1
КОГДА ЕСТЬNULL(ОстаткиЗаказовКлиента.ЗаказаноОстаток, 0) = 0
ТОГДА -1
ИНАЧЕ 0
КОНЕЦ
КОНЕЦ
Показать*КоличествоТоваровИтог.Количество - это количество товара в заказе клиента.
Нужен такой результат:
1 - Товар полностью не отгружен,
2 - Отгружена часть товара,
3 - Товар полностью отгружен.
У меня почему то у всех документов заказа результат 0. Помогите, пожалуйста
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
3.
Гость
06.03.21 18:35
ВЫБРАТЬ
ДокументЗаказКлиента.Ссылка КАК Ссылка,
ДокументЗаказКлиента.Менеджер КАК Менеджер,
ДокументЗаказКлиента.Партнер КАК Партнер,
ДокументЗаказКлиента.Номер КАК Номер,
ДокументЗаказКлиента.Дата КАК Дата,
ДокументЗаказКлиента.Подразделение КАК Подразделение,
ДокументЗаказКлиента.АдресДоставки КАК АдресДоставки,
ВЫБОР
КОГДА ЕСТЬNULL(ОстаткиЗаказовКлиента.ЗаказаноОстаток, 0) = 0
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ КАК Отгружено,
КоличествоТоваровИтог.Количество КАК КоличествоИтог,
ВЫБОР
КОГДА ЕСТЬNULL(ОстаткиЗаказовКлиента.ЗаказаноОстаток, 0) <> 0
ТОГДА ВЫБОР
КОГДА ОстаткиЗаказовКлиента.ЗаказаноОстаток = КоличествоТоваровИтог.Количество
ТОГДА 1
КОГДА ЕСТЬNULL(ОстаткиЗаказовКлиента.ЗаказаноОстаток, 0) = 0
ТОГДА -1
ИНАЧЕ 0
КОНЕЦ
КОНЕЦ КАК ПризнакОтгруженности
ИЗ
Документ.ЗаказКлиента КАК ДокументЗаказКлиента
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
СУММА(ЗаказыКлиентовОстатки.ЗаказаноОстаток) КАК ЗаказаноОстаток,
ЗаказыКлиентовОстатки.ЗаказКлиента КАК ЗаказКлиента
ИЗ
РегистрНакопления.ЗаказыКлиентов.Остатки КАК ЗаказыКлиентовОстатки
СГРУППИРОВАТЬ ПО
ЗаказыКлиентовОстатки.ЗаказКлиента) КАК ОстаткиЗаказовКлиента
ПО ДокументЗаказКлиента.Ссылка = ОстаткиЗаказовКлиента.ЗаказКлиента
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
СУММА(ЗаказКлиентаТовары.Количество) КАК Количество,
ЗаказКлиентаТовары.Ссылка КАК СсылкаЗаказ
ИЗ
Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
СГРУППИРОВАТЬ ПО
ЗаказКлиентаТовары.Ссылка) КАК КоличествоТоваровИтог
ПО ДокументЗаказКлиента.Ссылка = КоличествоТоваровИтог.СсылкаЗаказ
ГДЕ
ДокументЗаказКлиента.Проведен = ИСТИНА
И ДокументЗаказКлиента.Товары.Склад В(&Склады)
И ДокументЗаказКлиента.Дата МЕЖДУ &ДатаНачала И &ДатаКонец
Показать
Это решение
(3)
В секцию "КОГДА ЕСТЬNULL(ОстаткиЗаказовКлиента.ЗаказаноОстаток, 0) = 0" никогда не попадете, так как выше отсекаете ее: "КОГДА ЕСТЬNULL(ОстаткиЗаказовКлиента.ЗаказаноОстаток, 0) <> 0"
ВЫБОР
КОГДА ЕСТЬNULL(ОстаткиЗаказовКлиента.ЗаказаноОстаток, 0) <> 0
ТОГДА ВЫБОР
КОГДА ОстаткиЗаказовКлиента.ЗаказаноОстаток = КоличествоТоваровИтог.Количество
ТОГДА 1
КОГДА ЕСТЬNULL(ОстаткиЗаказовКлиента.ЗаказаноОстаток, 0) = 0
ТОГДА -1
ИНАЧЕ 0
КОНЕЦ
КОНЕЦ КАК ПризнакОтгруженности
КОГДА ЕСТЬNULL(ОстаткиЗаказовКлиента.ЗаказаноОстаток, 0) <> 0
ТОГДА ВЫБОР
КОГДА ОстаткиЗаказовКлиента.ЗаказаноОстаток = КоличествоТоваровИтог.Количество
ТОГДА 1
КОГДА ЕСТЬNULL(ОстаткиЗаказовКлиента.ЗаказаноОстаток, 0) = 0
ТОГДА -1
ИНАЧЕ 0
КОНЕЦ
КОНЕЦ КАК ПризнакОтгруженности
В секцию "КОГДА ЕСТЬNULL(ОстаткиЗаказовКлиента.ЗаказаноОстаток, 0) = 0" никогда не попадете, так как выше отсекаете ее: "КОГДА ЕСТЬNULL(ОстаткиЗаказовКлиента.ЗаказаноОстаток, 0) <> 0"
Это решение
(11) вместо этого:
можно сделать так:
Но тут еще нужны более подробные условия задачи.
ВЫБОР
КОГДА ЕСТЬNULL(ОстаткиЗаказовКлиента.ЗаказаноОстаток, 0) <> 0
ТОГДА ВЫБОР
КОГДА ОстаткиЗаказовКлиента.ЗаказаноОстаток = КоличествоТоваровИтог.Количество
ТОГДА 1
КОГДА ЕСТЬNULL(ОстаткиЗаказовКлиента.ЗаказаноОстаток, 0) = 0
ТОГДА -1
ИНАЧЕ 0
КОНЕЦ
КОНЕЦ
Показатьможно сделать так:
ВЫБОР
КОГДА ЕСТЬNULL(ОстаткиЗаказовКлиента.ЗаказаноОстаток, 0) = 0
ТОГДА -1
КОГДА ОстаткиЗаказовКлиента.ЗаказаноОстаток = ЕСТЬNULL(КоличествоТоваровИтог.Количество,0)
ТОГДА 1
ИНАЧЕ 0
КОНЕЦ
ПоказатьНо тут еще нужны более подробные условия задачи.
Это решение
Как-то условие не понятно написано, я бы так переписал
ВЫБОР
КОГДА ЕСТЬNULL(ОстаткиЗаказовКлиента.ЗаказаноОстаток, 0) = КоличествоТоваровИтог.Количество ТОГДА 1 //Не отгружен полностью
КОГДА ЕСТЬNULL(ОстаткиЗаказовКлиента.ЗаказаноОстаток, 0) = 0 ТОГДА -1 // Отгружен весь
ИНАЧЕ 0 // Частично отгружен
КОНЕЦ
Это решение
8.
Гость
06.03.21 19:34
(6)
В таком случае у всех заказов тоже признак отгруженности 0
ВЫБОР
КОГДА ЕСТЬNULL(ОстаткиЗаказовКлиента.ЗаказаноОстаток, 0) = КоличествоТоваровИтог.Количество ТОГДА 1 //Не отгружен полностью
КОГДА ЕСТЬNULL(ОстаткиЗаказовКлиента.ЗаказаноОстаток, 0) = 0 ТОГДА -1 // Отгружен весь
ИНАЧЕ 0 // Частично отгружен
КОНЕЦ
КОГДА ЕСТЬNULL(ОстаткиЗаказовКлиента.ЗаказаноОстаток, 0) = КоличествоТоваровИтог.Количество ТОГДА 1 //Не отгружен полностью
КОГДА ЕСТЬNULL(ОстаткиЗаказовКлиента.ЗаказаноОстаток, 0) = 0 ТОГДА -1 // Отгружен весь
ИНАЧЕ 0 // Частично отгружен
КОНЕЦ
В таком случае у всех заказов тоже признак отгруженности 0
Это решение
На вскидку
ВЫБОР
КОГДА ОстаткиЗаказовКлиента.ЗаказаноОстаток не Есть NULL
ТОГДА ВЫБОР
КОГДА ОстаткиЗаказовКлиента.ЗаказаноОстаток = КоличествоТоваровИтог.Количество
ТОГДА 1 // полностью не отгружен
Иначе Выбор
КОГДА ОстаткиЗаказовКлиента.ЗаказаноОстаток = 0
ТОГДА 3 // полностью отгружен
ИНАЧЕ 2
Конец
Иначе // а тут вообще в регистре данных нет а заказ есть
КОНЕЦ
ВЫБОР
КОГДА ОстаткиЗаказовКлиента.ЗаказаноОстаток не Есть NULL
ТОГДА ВЫБОР
КОГДА ОстаткиЗаказовКлиента.ЗаказаноОстаток = КоличествоТоваровИтог.Количество
ТОГДА 1 // полностью не отгружен
Иначе Выбор
КОГДА ОстаткиЗаказовКлиента.ЗаказаноОстаток = 0
ТОГДА 3 // полностью отгружен
ИНАЧЕ 2
Конец
Иначе // а тут вообще в регистре данных нет а заказ есть
КОНЕЦ
Это решение
9.
Гость
06.03.21 19:40
(7)
Ожидается выражение "ТОГДА"
КОГДА ОстаткиЗаказовКлиента.ЗаказаноОстаток <<?>>НЕ ЕСТЬ NULL
ВЫБОР
КОГДА ОстаткиЗаказовКлиента.ЗаказаноОстаток не Есть NULL
ТОГДА ВЫБОР
КОГДА ОстаткиЗаказовКлиента.ЗаказаноОстаток = КоличествоТоваровИтог.Количество
ТОГДА 1 // полностью не отгружен
Иначе Выбор
КОГДА ОстаткиЗаказовКлиента.ЗаказаноОстаток = 0
ТОГДА 3 // полностью отгружен
ИНАЧЕ 2
Конец
Иначе // а тут вообще в регистре данных нет а заказ есть
КОНЕЦ
КОГДА ОстаткиЗаказовКлиента.ЗаказаноОстаток не Есть NULL
ТОГДА ВЫБОР
КОГДА ОстаткиЗаказовКлиента.ЗаказаноОстаток = КоличествоТоваровИтог.Количество
ТОГДА 1 // полностью не отгружен
Иначе Выбор
КОГДА ОстаткиЗаказовКлиента.ЗаказаноОстаток = 0
ТОГДА 3 // полностью отгружен
ИНАЧЕ 2
Конец
Иначе // а тут вообще в регистре данных нет а заказ есть
КОНЕЦ
Ожидается выражение "ТОГДА"
КОГДА ОстаткиЗаказовКлиента.ЗаказаноОстаток <<?>>НЕ ЕСТЬ NULL
Это решение
12.
Гость
06.03.21 21:07
Я исправил, вот так:
ВЫБОР
КОГДА ЕСТЬNULL(ОстаткиЗаказовКлиента.ЗаказаноОстаток, 0) <> 0
ТОГДА ВЫБОР
КОГДА ОстаткиЗаказовКлиента.ЗаказаноОстаток = КоличествоТоваровИтог.Количество
ТОГДА 1
ИНАЧЕ 0
КОНЕЦ
ИНАЧЕ -1
КОНЕЦ
Показать
Это решение
Внимание! Не забывайте отмечать решение на ваш вопрос, если оно найдено. Это повысит ваш рейтинг на форуме.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот