|
Даж не знаю как вопрос задать ↓ (Волшебник 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
|
закрыли вопрос
конструктор запросов помог
|
|