У меня есть таблица дат, который передается в скалярной функции:Множественные Результаты скаляра для выбора
выбрать GETVAL («1/1/1») возвращает поплавок.
Я прокручиваю свою таблицу дат и устанавливаю @date, , затем сохраняя результат на @result, а затем выполняю запись этого значения.
Как получить несколько результатов (с несколькими скалярными вызовами) без выполнения цикла? Мне сказали, чтобы стараться держаться подальше от выполнения циклов внутри sql, и что есть лучший способ выполнить эту операцию.
Пример:
@DateTable
ID Dates
1 1/1/1
2 1/3/1
3 1/4/1
4 1/2/2
5 1/3/2
6 4/15/12
set @k = 1
while @k <= (select count(ID) from @DateTable)
begin
set @date = select Dates from @DateTable where ID = @k
set @result = (select mySchema.getVal(@date))
insert into @ResTable(result,logged) values (@result, LOG(@result))
set @k = @k + 1
end
Можете ли вы предоставить схему, образцы данных, ожидаемые данные и любой имеющийся у вас код, который работает сегодня? –
Что означает «выполнение журнала по этому значению»? Какую базу данных sql вы используете? Является ли getVal() скалярной функцией, которую вы определили? Что оно делает? –
Пошел вперед и добавил пример того, как выглядят мои данные. Скалярная функция возвращает только значение float и только одно значение, но мне не разрешено изменять функцию. – aperture