|
условие в запросе | ☑ | ||
---|---|---|---|---|
0
potapovi4
29.10.15
✎
12:15
|
Добрый день подскажите как вывести в запрос только те где наличие = 0 что то типа так
ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК КоличествоТоваров, ВЫБОР КОГДА ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) > 0 ТОГДА 1 ИНАЧЕ 0 КОНЕЦ КАК Наличие, ИЗ Справочник.Номенклатура.Изменения КАК Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Штрихкоды КАК ШтрихКоды ПО Номенклатура.Ссылка = ШтрихКоды.Владелец ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки() КАК ТоварыНаСкладахОстатки ПО Номенклатура.Ссылка = ТоварыНаСкладахОстатки.Номенклатура И ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры = ШтрихКоды.ХарактеристикаНоменклатуры ГДЕ Наличие = 0 Запрос отлично работает но емогу правильно сделать конструкцию ГДЕ.Ругается на поле Наличие |
|||
1
ДенисЧ
29.10.15
✎
12:15
|
и правильно ругается.
Ибо в ГДЕ такого поля ещё нет |
|||
2
potapovi4
29.10.15
✎
12:17
|
(1)
подскажите как правильно написать |
|||
3
ДенисЧ
29.10.15
✎
12:18
|
(2)
где ВЫБОР КОГДА ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) > 0 ТОГДА 1 ИНАЧЕ 0 КОНЕЦ = 0 //и почитай умные книги по запросам |
|||
4
Мимохожий Однако
29.10.15
✎
12:19
|
Сделай левое соединение с остатками на неравенство
|
|||
5
potapovi4
29.10.15
✎
12:19
|
(3)сорри я думал что конец это конец выбора и назначение имени поля
|
|||
6
potapovi4
29.10.15
✎
12:20
|
(3)Операция не разрешена в предложении "ВЫБРАТЬ"
КОНЕЦ <<?>>= 0, |
|||
7
ДенисЧ
29.10.15
✎
12:21
|
значит, ты где-то что-то пропустил
|
|||
8
Sammo
29.10.15
✎
12:23
|
Рекомендую таки для начала пользоваться конструктором - намного упростит составление запроса и избавит от подобных ошибок
|
|||
9
potapovi4
29.10.15
✎
12:24
|
(7)вроде ничего
ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК КоличествоТоваров, ВЫБОР КОГДА ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) > 0 ТОГДА 1 ИНАЧЕ 0 КОНЕЦ =0, ИЗ Справочник.Номенклатура.Изменения КАК Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Штрихкоды КАК ШтрихКоды ПО Номенклатура.Ссылка = ШтрихКоды.Владелец ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки() КАК ТоварыНаСкладахОстатки ПО Номенклатура.Ссылка = ТоварыНаСкладахОстатки.Номенклатура И ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры = ШтрихКоды.ХарактеристикаНоменклатуры |
|||
10
potapovi4
29.10.15
✎
12:25
|
(4)можно пример?
|
|||
11
potapovi4
29.10.15
✎
12:43
|
если в ГДЕ добавить ТоварыНаСкладахОстатки.КоличествоОстаток = 0 То в запрос вообще ничего не попадает
|
|||
12
bvb
29.10.15
✎
12:49
|
Лучше через ВТ
В ВТ отобрать срез остатков на дату и отобрать номенклатуру по условию НЕНАЛИЧИЯ в ВТ Это правильнее и наглядней |
|||
13
Sammo
29.10.15
✎
12:49
|
(11) Потому что если добавить это условие, то работать будет как внутреннее соединение.
Я бы вообще сделал так 1. Соединяем Номенклатуру со штрихкодами - чтобы в запросе иметь возможность выбирать штрихкода. 2. Соединяем номенклатуру с остатками. Левым. В условия добавляем По ТоварыНаСкладахОстатки.КоличествоОстаток <> 0 Этим мы получили соединение с ненулевыми остатками. Т.е. если такая строка есть, нам оно не надо. Поэтому добавляем условие ТоварыНаСкладахОстатки.КоличествоОстаток Есть NULL. Т.е. отбираем только те строки, где нет нормального количества. Как то так. |
|||
14
Sammo
29.10.15
✎
12:51
|
Кстати, вариант 12 нагляднее и там можно будет задать условие Имеющие Количество <> 0. Тогда получим только ненулевые остатки.
|
|||
15
anatoly
29.10.15
✎
12:54
|
в (3) и (8) правильные советы.
(6) он там сам "КАК Поле1" забыл вставить )) |
|||
16
hhhh
29.10.15
✎
12:57
|
(11) то что написано в (3) это напиши в ГДЕ
|
|||
17
Sammo
29.10.15
✎
13:14
|
И добавлю, а если остаток на складе меньше нуля? Ну вот так получилось, пересорт, например. Или пропили?
|
|||
18
bvb
29.10.15
✎
14:11
|
(17) Интересно как это минусовой остаток получится при пересорте. Просвети.
|
|||
19
itlikbez
29.10.15
✎
14:28
|
(0)
ГДЕ ТоварыНаСкладахОстатки.КоличествоОстаток ЕСТЬ NULLL |
|||
20
hhhh
29.10.15
✎
14:35
|
(19) не то
|
|||
21
User_Agronom
29.10.15
✎
14:47
|
Поправлю (3)
Где ВЫБОР КОГДА ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) > 0 ТОГДА Ложь ИНАЧЕ Истина КОНЕЦ |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |