![]() |
![]() |
![]() |
|
Даж не знаю как вопрос задать ↓ (Волшебник 07.06.2014 01:06) |
☑ | ||
---|---|---|---|---|
0
lamme
07.06.14
✎
00:49
|
Вот запрос ...
"ВЫБРАТЬ РАЗРЕШЕННЫЕ | ЗаказыПокупателейОстаткиИОбороты.Номенклатура КАК Номенклатура, | СУММА(ЗаказыПокупателейОстаткиИОбороты.КоличествоОборот) КАК Запланировано, | СУММА(ЭтоОстатки.КоличествоОстаток) КАК Остаток, | СУММА(ЭтоРезервы.КоличествоОстаток) КАК ВРезерве, | ВЫБОР | КОГДА СУММА(ЭтоРезервы.КоличествоОстаток) = &ноль | ИЛИ СУММА(ЭтоРезервы.КоличествоОстаток) = &NULL тогда | 10 ИНАЧЕ | 20 | | КОНЕЦ КАК СвободныйОстаток, ... В запросе есть условие - Выбор Когда .. ТОгда 10 Иначе 20 Конец. как правильно надо написать условие - чтобы было в итоге запроса 10 (сейчас постоянно 20 ) ) |
|||
1
Drac0
07.06.14
✎
00:53
|
&ноль, &NULL ?!
|
|||
2
NcSteel
07.06.14
✎
00:54
|
на null проверять следует так:
Выбор ПолеЗапроса is Null Когда .... |
|||
3
Drac0
07.06.14
✎
00:55
|
А так любая логическая операция с Null возвращает ложь. Используй ЕСТЬ NULL.
|
|||
4
lamme
07.06.14
✎
00:55
|
ну дык .. вот и гадаю.
там надо - если ЭтоРезервы.КоличествоОстаток =0 тогда 10 иначе 20 как в запросе прально это прописать ? |
|||
5
1cVandal
07.06.14
✎
00:55
|
)))))
|
|||
6
lamme
07.06.14
✎
00:56
|
Спасибо
|
|||
7
1cVandal
07.06.14
✎
00:56
|
(4) ВЫБОР
| КОГДА СУММА( ЕстьNull(ЭтоРезервы.КоличествоОстаток,0)) = 0 | 10 ИНАЧЕ | 20 |
|||
8
Drac0
07.06.14
✎
00:57
|
Правильно писать ЕСТЬNULL(СУММА(ЭтоРезервы.КоличествоОстаток),0)=0
|
|||
9
lamme
07.06.14
✎
00:58
|
8
почему так праивлньо? |
|||
10
Drac0
07.06.14
✎
01:01
|
(9) Потому что если в поле может быть NULL, возвращать его в результате запроса сильно некошерно. Надо сразу приводить к пустому значению типа. В условии убирается лишнее ИЛИ, и короче.
|
|||
11
lamme
07.06.14
✎
09:33
|
В продолжение.
Теперь есть такое | СУММА(ЗаказыПокупателейОстаткиИОбороты.КоличествоОборот) КАК Запланировано, | ВЫБОР | КОГДА СУММА( ЕстьNull(ЭтоРезервы.КоличествоОстаток,0)) = 0 Тогда | СУММА(ЭтоОстатки.КоличествоОстаток) | ИНАЧЕ | СУММА(ЭтоОстатки.КоличествоОстаток - ЭтоРезервы.КоличествоОстаток) | КОНЕЦ КАК СвободныйОстаток, т.е. в запросе определяются 2 поля СвободныйОстаток и Запланировано Надо определить еще одно поле по такой логике Если (Запланировано - СвободныйОстаток )<0 тогда 0 иначе (Запланировано - СвободныйОстаток ) =========================== и тут начинаю опять не понимать ((( Выбор Когда (Запланировано - <<ЧтоТутПисатьПравильно?>>)<0 тогда 0 иначе (Запланировано - <<ЧтоТутПисатьПравильно?>>) конец |
|||
12
lamme
07.06.14
✎
09:52
|
закрыли вопрос
конструктор запросов помог |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |