v7: аналог функции в sql макс(а,б) #727451


#0 by Skom
что-то туплю под конец рабочего дня надо, если значение меньше 0 то вернуть 0 без кейса в зпросе sql можно так сделать? по аналогии с функцией МАКС(a1,...,aN)
#1 by ДенисЧ
а чем тебе case не угодил?
#2 by Skom
пока писал впосро, вспомнил про кейс)
#3 by Skom
макс(а,б) короче и красивее выглядит
#4 by zulu_mix
max
#5 by Ёпрст
select (abs(a)+a)/2
#6 by ДенисЧ
А если там строки?
#7 by Ёпрст
>>>сли значение меньше 0   это строки разве ? речь же о числах, разве нет ?
#8 by Skom
конструкция сильно большая получается(((( с кейсом не прокатило ругается на when < 0
#9 by Skom
у меня числа
#10 by Ёпрст
ну и если строки, то кастом их кастом сперва :) мли конвертом
#11 by Ёпрст
чей то ?
#12 by ДенисЧ
"аа" < "0" ? Не?
#13 by Ёпрст
:) да числа у него, числа..
#14 by Skom
потому что А  у меня - $?????.????? - ($?????????????????.?????????????.???????($?????.?????????, :???????)*$?????.?????????/1000)
#15 by Skom
$ДокТЧ.Масса - ($ПоследнееЗначение.РезервуарыБаз.Мертвый($ДокТЧ.Резервуар, :КонДата)*$ДокТЧ.Плотность/1000)
#16 by Skom
Сделал через кейс. отдельное спасибо за то, что в очередной раз заставил мой мозг уйти от шаблонов)
#17 by Ёпрст
Ну и ? в case тоже будет "не мало кода" :)
#18 by zulu_mix
так чем max c правильной группировкой не угодил
#19 by Skom
потому что не удобно |SELECT as ГруппировкаКод,
#20 by Skom
строку 2 не смотреть ее там нет
#21 by Ёпрст
:) ну напиши нам текст запроса, как с помощью max для таблички вида -10 23 -21 получить 0 23 0
#22 by Ёпрст
|   (( $ДокТЧ.Масса - ($ПоследнееЗначение.РезервуарыБаз.Мертвый($ДокТЧ.Резервуар, :КонДата)*$ДокТЧ.Плотность/1000))+ ну и ? вот без кейса.. тоже самое по длине
#23 by Ёпрст
ну там, abs еще не вставил :)
#24 by Ёпрст
+23 |   (abs($ДокТЧ.Масса - ($ПоследнееЗначение.РезервуарыБаз.Мертвый($ДокТЧ.Резервуар, :КонДата)*$ДокТЧ.Плотность/1000))+
#25 by Skom
согласись, с кейсом более читабельно?
#26 by Skom
если бы я через подзапрос делал, то твой вариант более короткий будет, а на таком длинном, кейс более читабельный
#27 by КонецЦикла
#28 by Ёпрст
сделаешь воспроизводимый тест с max для ?
#29 by Ёпрст
max же агрегатная функция...
#30 by Ёпрст
ну, просил же без case
#31 by КонецЦикла
select id id ) as z group by z.id
#32 by Ёпрст
ну блин, тут еще и доп колонка... :) в общем, можно и через коррелированный подзапрос, но..думаю это всё аутору не надо.
#33 by КонецЦикла
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С