Есть число (чкажем 1289,45) Нужно его округлить, скажем, до 100, получится 1300. Как это сделать тексте запроса?
В запросе можно выразить как число(x,y), но y задает количество знаков после запятой.
Нужно при выводе динамических цен.
КОГДА ЦеныНоменклатурыДругие.ТипЦен.ПорядокОкругления.Порядок = &п10
ТОГДА (ВЫРАЗИТЬ(ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) / 10 КАК ЧИСЛО(15, 0))) * 10
КОГДА ЦеныНоменклатурыДругие.ТипЦен.ПорядокОкругления.Порядок = &п0_01
ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) КАК ЧИСЛО(15, 2))
КОГДА ЦеныНоменклатурыДругие.ТипЦен.ПорядокОкругления.Порядок = &п100
ТОГДА (ВЫРАЗИТЬ(ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена + 5, 0) / 10 КАК ЧИСЛО(15, 0))) * 10
ВЫБОР
КОГДА ЦеныНоменклатурыДругие.ТипЦен.ПорядокОкругления = &п100
ТОГДА (ВЫРАЗИТЬ(ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) / 100 КАК ЧИСЛО(15, 0))) * 100
КОГДА ЦеныНоменклатурыДругие.ТипЦен.ПорядокОкругления = &п10
ТОГДА (ВЫРАЗИТЬ(ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) / 10 КАК ЧИСЛО(15, 0))) * 10
КОГДА ЦеныНоменклатурыДругие.ТипЦен.ПорядокОкругления = &п1
ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) КАК ЧИСЛО(15, 0))
КОГДА ЦеныНоменклатурыДругие.ТипЦен.ПорядокОкругления = &п0_1
ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) КАК ЧИСЛО(15, 1))
КОГДА ЦеныНоменклатурыДругие.ТипЦен.ПорядокОкругления = &п0_01
ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) КАК ЧИСЛО(15, 2))
КОГДА ЦеныНоменклатурыДругие.ТипЦен.ПорядокОкругления = &п50
И ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) / 100 - (ВЫРАЗИТЬ(ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) / 100 - 0.5 КАК ЧИСЛО(15, 0))) >= 0.25
И ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) / 100 - (ВЫРАЗИТЬ(ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) / 100 - 0.5 КАК ЧИСЛО(15, 0))) < 0.75
ТОГДА (ВЫРАЗИТЬ((ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) - 25) / 100 КАК ЧИСЛО(15, 0))) * 100 + 50
КОГДА ЦеныНоменклатурыДругие.ТипЦен.ПорядокОкругления = &п50
И (ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) / 100 - (ВЫРАЗИТЬ(ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) / 100 - 0.5 КАК ЧИСЛО(15, 0))) < 0.25
ИЛИ ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) / 100 - (ВЫРАЗИТЬ(ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) / 100 - 0.5 КАК ЧИСЛО(15, 0))) >= 0.75)
ТОГДА (ВЫРАЗИТЬ(ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) / 100 КАК ЧИСЛО(15, 0))) * 100
КОГДА ЦеныНоменклатурыДругие.ТипЦен.ПорядокОкругления = &п5
И ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) / 10 - (ВЫРАЗИТЬ(ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) / 10 - 0.5 КАК ЧИСЛО(15, 0))) >= 0.25
И ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) / 10 - (ВЫРАЗИТЬ(ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) / 10 - 0.5 КАК ЧИСЛО(15, 0))) < 0.75
ТОГДА (ВЫРАЗИТЬ((ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) - 2.5) / 10 КАК ЧИСЛО(15, 0))) * 10 + 5
КОГДА ЦеныНоменклатурыДругие.ТипЦен.ПорядокОкругления = &п5
И (ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) / 10 - (ВЫРАЗИТЬ(ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) / 10 - 0.5 КАК ЧИСЛО(15, 0))) < 0.25
ИЛИ ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) / 10 - (ВЫРАЗИТЬ(ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) / 10 - 0.5 КАК ЧИСЛО(15, 0))) >= 0.75)
ТОГДА (ВЫРАЗИТЬ(ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) / 10 КАК ЧИСЛО(15, 0))) * 10
КОГДА ЦеныНоменклатурыДругие.ТипЦен.ПорядокОкругления = &п0_5
И ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) - (ВЫРАЗИТЬ(ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) - 0.5 КАК ЧИСЛО(15, 0))) >= 0.25
И ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) - (ВЫРАЗИТЬ(ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) - 0.5 КАК ЧИСЛО(15, 0))) < 0.75
ТОГДА (ВЫРАЗИТЬ(ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) - 0.25 КАК ЧИСЛО(15, 0))) + 0.5
КОГДА ЦеныНоменклатурыДругие.ТипЦен.ПорядокОкругления = &п0_5
И (ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) - (ВЫРАЗИТЬ(ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) - 0.5 КАК ЧИСЛО(15, 0))) < 0.25
ИЛИ ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) - (ВЫРАЗИТЬ(ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) - 0.5 КАК ЧИСЛО(15, 0))) >= 0.75)
ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) КАК ЧИСЛО(15, 0))
КОГДА ЦеныНоменклатурыДругие.ТипЦен.ПорядокОкругления = &п0_05
И ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) * 10 - (ВЫРАЗИТЬ(ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) * 10 - 0.5 КАК ЧИСЛО(15, 0))) >= 0.25
И ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) * 10 - (ВЫРАЗИТЬ(ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) * 10 - 0.5 КАК ЧИСЛО(15, 0))) < 0.75
ТОГДА (ВЫРАЗИТЬ(ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) - 0.025 КАК ЧИСЛО(15, 1))) + 0.05
КОГДА ЦеныНоменклатурыДругие.ТипЦен.ПорядокОкругления = &п0_05
И (ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) * 10 - (ВЫРАЗИТЬ(ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) * 10 - 0.5 КАК ЧИСЛО(15, 0))) < 0.25
ИЛИ ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) * 10 - (ВЫРАЗИТЬ(ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) * 10 - 0.5 КАК ЧИСЛО(15, 0))) >= 0.75)
ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0) КАК ЧИСЛО(15, 1))
ИНАЧЕ ЕСТЬNULL(ЦеныНоменклатурыДругие.Цена, 0)
КОНЕЦ КАК Цена,
ВЫБРАТЬ
(ВЫРАЗИТЬ(1456.66 / 50 + 0.5 КАК ЧИСЛО(15, 0))) * 50 КАК КруглениеК50,
(ВЫРАЗИТЬ(1456.66 / 5 + 0.5 КАК ЧИСЛО(15, 0))) * 5 КАК КруглениеК5,
(ВЫРАЗИТЬ(1456.66 / 0.5 + 0.5 КАК ЧИСЛО(15, 0))) * 0.5 КАК КруглениеК0_5,
(ВЫРАЗИТЬ(1456.66 / 0.05 + 0.5 КАК ЧИСЛО(15, 0))) * 0.05 КАК КруглениеК0_05
ВЫБРАТЬ Ссылка, Значение ПОМЕСТИТЬ ПорядокОкругления ИЗ &ПорядокОкругления;
ЛЕВОЕ СОЕДИНЕНИЕ ПорядокОкругления ПО ПорядокОкругления.Ссылка = ЦеныНоменклатурыДругие.ТипЦен.ПорядокОкругления
(ВЫРАЗИТЬ((Цена / ПорядокОкругления) КАК ЧИСЛО(15,0)) * ПорядокОкругления)