rounding the result to near 500's -SQL

Hi experts I have column which gives the following results(CAST(MAX(DISTINCT i.invoice_amt) AS INT)) and I was asked to round it to the nearest 500, was wondering how I could achieve that, please help:
original result-expected result
21937.5 - 22000
3528 - 3500
4904.25 - 5000
17154.75 -17000
25938.75 - 26000
2209.5 - 2000
2760- 3000
Who is Participating?

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Author Commented:
I tried the below and it works for most of the numbers but doesnt for 2760. For 2760 I am getting 2500 but would need 3000 as a result, please help

SELECT ROUND ( column/500 , 0, 0)*500
Senior .Net DeveloperCommented:
select round(@number/ 500) * 500
Owner, Developing Solutions LLCCommented:
Try:

Round(x/1000)*1000
Senior DBACommented:
You can round to even 100 like so:

(CAST(ROUND(MAX(DISTINCT i.invoice_amt), -2) AS INT))
Senior DBACommented:
Now we "just" have to go from 100s to 500s :-) .
Owner, Developing Solutions LLCCommented:
Duh, that won't work, but Round(x/500)*500 works fine on my Access system.
Senior DBACommented:
Never mind.  Hopefully this will do the whole thing in one shot

(CAST((MAX(DISTINCT i.invoice_amt) + 250.0) / 500.0 * 500.0 AS INT))
progCommented:
SELECT ROUND ( column/500.0 , 0, 0)*500

just put the 500.0 in the divisor to make it do the calc as a float

Experts Exchange Solution brought to you by