Предположим, что у меня есть таблица amountInfo со столбцами (id, amount1, amount2, amount3) где amountX - это денежные значения, а id - значение int от 1 до некоторого int менее 10.Факторинг цикла while в сценарии SQL
в настоящее время у меня есть некоторый код, который делает это примерно:
declare @id int, @idmax int, @amounttotal money
select @idmax = (select max(Id) from amountInfo)
while (@id <= @idmax)
begin
select @amounttotal = sum(amount1 + amount2 + amount3)
from amountinfo where [email protected]
-- do something with @amounttotal
select @[email protected]+1
end
есть ли способ вынесет в то время цикла с каким-то сложным отборным заявлением здесь? Я имею опыт программирования C/C++/C#, но SQL для меня совершенно новый. Благодаря!
EDIT: в основном часть «-do something» включает в себя вставку отдельных элементов @amount в другую таблицу. Фактический запрос, который я запускаю, более сложный, чем это, но я надеюсь сначала решить эту простую проблему перед публикацией огромного примера кода.
У меня есть идея, но я обеспокоен тем, что будет обусловлено то, что * сделать что-то с @ amounttotal * это ... Вы можете уточнить это? –
Я согласен с Остином ... то, что вы пытаетесь сделать, приведет к тому, что ответ на ваш вопрос. Если вы пытаетесь обновить или вставить другие записи, вам, вероятно, просто нужно будет использовать подзапрос. Кроме того, ID будет соответствовать ряду строк или всего лишь 1 строке? –