J'ai une table définie comme ceci:Comment arrondir une colonne dans une seule requête SQL sans modifier la somme globale?
create table #tbFoo
(bar float)
Je suis à la recherche d'un moyen pour arrondir chaque valeur contenue dans la barre de colonne sans changer la somme totale (qui est connu pour être un entier, ou très proche d'un nombre entier en raison de la précision du nombre de float).
Arrondir chaque valeur à l'entier le plus proche ne fonctionnera pas (ex: 1,5; 1,5, arrondi à 1, 1 ou 2; 2)
Il est assez facile de le faire en utilisant plusieurs demandes (par exemple stocker la somme originale, arrondir, calculer la nouvelle somme et mettre à jour autant de lignes que nécessaire pour revenir à la somme originale), mais ce n'est pas une solution très élégante.
Existe-t-il un moyen de le faire en utilisant une seule requête SQL? J'utilise SQL Server 2008, donc les solutions tirant parti de ce fournisseur spécifique sont les bienvenues.
Editer: Je cherche une demande en minimisant les différences entre les anciennes valeurs et les nouvelles. En d'autres termes, une valeur ne doit jamais être arrondi si une plus grande valeur a été arrondi vers le bas, et vice-versa
Une bonne question. Je le mets dans ma liste de choses à faire pour les articles de blog. – Quassnoi