Supposons que j'ai une table amountInfo avec des colonnes (id, amount1, amount2, amount3) où amountX sont des valeurs monétaires et id est une valeur int comprise entre 1 et un int inférieur à 10.Affacturage d'une boucle while dans le script SQL
Actuellement, j'ai un code qui fait à peu près ceci:
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
est-il un moyen de prendre en compte la boucle while avec une sorte de complexe instruction select ici? Je suis expérimenté avec la programmation C/C++/C# mais SQL est un peu nouveau pour moi. Merci!
EDIT: fondamentalement, la partie "--do quelque chose" implique l'insertion de @amounttotals individuels dans une autre table. La requête actuelle que je cours est plus compliquée que cela mais j'espère résoudre ce problème simple avant de poster un énorme exemple de code.
J'ai une idée mais je suis préoccupé par ce serait conditionnel à ce que * faire quelque chose avec @ amounttotal * est ... Pouvez-vous élaborer là-dessus? –
Je suis d'accord avec Austin ... ce que vous essayez de faire va conduire la réponse à votre question. Si vous essayez de mettre à jour ou d'insérer d'autres enregistrements, vous avez probablement besoin d'utiliser une sous-requête. Aussi, l'ID va-t-il correspondre à un nombre de lignes, ou juste à 1 rangée? –