|
Если 0 то 1 в запросе | ☑ | ||
---|---|---|---|---|
0
Лохматые Уши
15.03.12
✎
14:34
|
Всем салют!
Запрос: ВЫБРАТЬ Зн1*Зн2*Зн3*Зн4 ИЗ Таблица Как реализовать 0 вместо 1 в запросе, т.е. если например Зн3 = 0, то Зн3 д.б. = 1. |
|||
1
Grusswelle
15.03.12
✎
14:34
|
ВЫБОР
ЕСЛИ ТОГДА ИНАЧЕ КОНЕЦ |
|||
2
PR
15.03.12
✎
14:34
|
ВЫБОР
|
|||
3
andrewks
15.03.12
✎
14:35
|
case
|
|||
4
Ненавижу 1С
гуру
15.03.12
✎
14:35
|
выбор когда
|
|||
5
mirosh
15.03.12
✎
14:35
|
выбор когда Зн3 = 0 тогда 1
конец |
|||
6
Ненавижу 1С
гуру
15.03.12
✎
14:35
|
(0) а если <>0?
|
|||
7
Лохматые Уши
15.03.12
✎
14:38
|
(6) только 0 м.б.
Есть другие варианты кроме ВЫБОРА? |
|||
8
andrewks
15.03.12
✎
14:40
|
шо, опять религия не позволяет?
|
|||
9
Reset
15.03.12
✎
14:40
|
(7) Если только 0 может быть то просто:
Выбрать 1 |
|||
10
Reset
15.03.12
✎
14:40
|
т.к. не 0 не может
|
|||
11
Reset
15.03.12
✎
14:42
|
т.е. постановка задачи бессмысленная без (6)
|
|||
12
Лохматые Уши
15.03.12
✎
14:45
|
Сорри коллеги, я устал просто. уже сделал :)
|
|||
13
Лохматые Уши
15.03.12
✎
15:04
|
К чему я спрашивал альтернативу ВЫБОРУ КОГДА -
вот такой запрос получился, сложноватый: "ВЫБРАТЬ | НормыРасходовНаАвтотранспортныеСредства.Ответственный, | ВЫБОР | КОГДА НормыРасходовНаАвтотранспортныеСредства.КоэффициентГород = 0 | ТОГДА ВЫБОР | КОГДА НормыРасходовНаАвтотранспортныеСредства.КоэффициентГорнаяМестность = 0 | ТОГДА ВЫБОР | КОГДА НормыРасходовНаАвтотранспортныеСредства.КоэффициентКондиционер = 0 | ТОГДА ВЫБОР | КОГДА НормыРасходовНаАвтотранспортныеСредства.КоэффициентНовыйАвто = 0 | ТОГДА НормыРасходовНаАвтотранспортныеСредства.НормаБензинаНа100КилометровЗима | ИНАЧЕ НормыРасходовНаАвтотранспортныеСредства.НормаБензинаНа100КилометровЗима * НормыРасходовНаАвтотранспортныеСредства.КоэффициентНовыйАвто | КОНЕЦ | ИНАЧЕ НормыРасходовНаАвтотранспортныеСредства.НормаБензинаНа100КилометровЗима * НормыРасходовНаАвтотранспортныеСредства.КоэффициентНовыйАвто * НормыРасходовНаАвтотранспортныеСредства.КоэффициентКондиционер | КОНЕЦ | ИНАЧЕ НормыРасходовНаАвтотранспортныеСредства.НормаБензинаНа100КилометровЗима * НормыРасходовНаАвтотранспортныеСредства.КоэффициентНовыйАвто * НормыРасходовНаАвтотранспортныеСредства.КоэффициентКондиционер * НормыРасходовНаАвтотранспортныеСредства.КоэффициентГорнаяМестность | КОНЕЦ | ИНАЧЕ НормыРасходовНаАвтотранспортныеСредства.НормаБензинаНа100КилометровЗима * НормыРасходовНаАвтотранспортныеСредства.КоэффициентНовыйАвто * НормыРасходовНаАвтотранспортныеСредства.КоэффициентКондиционер * НормыРасходовНаАвтотранспортныеСредства.КоэффициентГорнаяМестность * НормыРасходовНаАвтотранспортныеСредства.КоэффициентГород | КОНЕЦ КАК НормаБензинаНа100КилометровЗима, | НормыРасходовНаАвтотранспортныеСредства.НормаБензинаНа100КилометровЛето |ИЗ | Справочник.НормыРасходовНаАвтотранспортныеСредства КАК НормыРасходовНаАвтотранспортныеСредства |
|||
14
rs_trade
15.03.12
✎
15:06
|
(13) альтернатива WHERE
|
|||
15
rs_trade
15.03.12
✎
15:07
|
и джойны
|
|||
16
Лохматые Уши
15.03.12
✎
15:08
|
хм..
|
|||
17
rs_trade
15.03.12
✎
15:25
|
(16) вообще запрос по сути очень простой, но выглядит громоздко. я бы лучше обработал результат запроса. в угоду удобночитаемости кода.
|
|||
18
НЕА123
15.03.12
✎
15:25
|
ВЫБРАТЬ
НормыРасходовНаАвтотранспортныеСредства.Ответственный, ВЫБОР КОГДА НормыРасходовНаАвтотранспортныеСредства.КоэффициентГород = 0 ТОГДА 1 ИНАЧЕ НормыРасходовНаАвтотранспортныеСредства.КоэффициентГород КОНЕЦ * КОГДА НормыРасходовНаАвтотранспортныеСредства.КоэффициентГорнаяМестность = 0 | ТОГДА 1 ИНАЧЕ НормыРасходовНаАвтотранспортныеСредства.КоэффициентГорнаяМестность КОНЕЦ * ..... и т.д. |
|||
19
МихаилМ
15.03.12
✎
15:34
|
(13)
ну так сначала сделайте вложенный запрос с подменами а во внешнем считайте формулу ток, кто после Вас будет разбираться в этом г-нокоде проклянет Вас (как и разрабов типовых) . Надо береч карму. в цену разработки входит цена поддержки. подерживать такое - наказание для прогов и их кормильцев. |
|||
20
ILM
гуру
15.03.12
✎
15:40
|
Я что-то не понял, а в справочнике "НормыРасходовНаАвтотранспортныеСредства" при записи строки нельзя коэффициенты
"НормаБензинаНа100КилометровЛето" и "НормаБензинаНа100КилометровЗима" расчитать и записать? Что бы потом уже в запросе выбирать готовое число и не мучиться. с такими построениями. |
|||
21
Reset
15.03.12
✎
16:23
|
(13) Так читабельней
ВЫБРАТЬ Нормы.Ответственный, ВЫБОР КОГДА Нормы.КоэффициентГород = 0 тогда 1 иначе Нормы.КоэффициентГород Конец КАК Город ВЫБОР КОГДА Нормы.КоэффициентГорнаяМестность = 0 тогда 1 иначе Нормы.КоэффициентГорнаяМестность Конец КАК ГорнаяМестность ВЫБОР КОГДА Нормы.КоэффициентКондиционер = 0 тогда 1 иначе Нормы.КоэффициентКондиционер Конец КАК Кондиционер ВЫБОР КОГДА Нормы.КоэффициентНовыйАвто = 0 тогда 1 иначе Нормы.КоэффициентНовыйАвто Конец КАК НовыйАвто Нормы.НормаБензинаНа100КилометровЗима, Нормы.НормаБензинаНа100КилометровЛето Поместить Коэффициенты ИЗ Справочник.НормыРасходовНаАвтотранспортныеСредства КАК Нормы; ВЫБРАТЬ Город*ГорнаяМестность*Кондиционер*НовыйАвто*НормаБензинаНа100КилометровЗима КАК НормаЗима, НормаБензинаНа100КилометровЛето КАК НормаЛето |
|||
22
Reset
15.03.12
✎
16:23
|
ИЗ Коэффициенты
|
|||
23
Reset
15.03.12
✎
16:24
|
(20) +1
Хранить единицу, если коэффициент не нужен |
|||
24
ILM
гуру
15.03.12
✎
18:19
|
Не, я повторюсь к(20). Вы часто встречаете чтобы запрос к ОДНОМУ справочнику что-то вычислял?
Справочник должен хранить данные или нет? |
|||
25
Лохматые Уши
15.03.12
✎
18:25
|
Спасибо за участие коллеги. Вариант с временной таблицей оптимален от коллеги Ресет.
(24) Справочник сделан без единиц для наглядности, а результирующий коэффицинент хранить в справочнике или где бы то ни было не охота, да и не оптимально по принципам построения БД. |
|||
26
МихаилМ
15.03.12
✎
18:50
|
(25)
по принципам построения бд (реляционных) нептимально хранить вместо данных - алгоритмы. тк управление алгоритмами на порядки сложнее. |
|||
27
Лохматые Уши
15.03.12
✎
19:18
|
Михаил, а как же избыточность со всеми вытекающими? (быстродействие, объем данных).
|
|||
28
Нуф-Нуф
15.03.12
✎
19:20
|
про ВЫБОР КОГДА уже было?
|
|||
29
МихаилМ
15.03.12
✎
19:38
|
(27)
основное правило эксплуатации бд : подальше положешь - поближе возьмешь борьба с объемом базы и быстодействием - вторичны и вечны . на данном этапе - точность данных (модели ) - превалирует. хотя во времена ec эвм было по-другому. стоимость вычислительного ресурса постоянно снижается (линейно). вместе стем точность представления увеличивается .сложнось растет экпоненциально. собственно поэтому борьба за вычислительнвй ресурс - вечная, но вторичная. те первично построение модели + оценка ёё ресурсоёмкости+ прогноз по изменению. поэтому достаточно просто грамотно вести разработку. |
|||
30
ShoGUN
15.03.12
✎
19:47
|
Вообще-то существуют ограничения по глубине вложенности CASE, поэтому как в (13) писать очень не рекомендую.
|
|||
31
ILM
гуру
15.03.12
✎
20:35
|
(30) Подробнее можно.
Писал больше 15 уровней, но там были спецификации, РЦ и т.д. Проблем не было. |
|||
32
ILM
гуру
15.03.12
✎
20:36
|
(25) А потом когда поездки начнете считать и расход бензина будете всегда запросом таблицу тягать??? Если на то пошло то в соответствие её запихнуть и динамически считать можно будет очень быстро.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |