SQL query to return a column per value in value range? I have a table like this:

Date            Value

2010-01-01      18638,5416666667
2010-01-02      19666,0416666667
2010-01-03      19527,75
2010-01-04      23111,875
2010-01-05      23893,5
2010-01-06      23912,875
2010-01-07      23587,2916666667
2010-01-08      23224,7916666667
2010-01-09      22384,5
2010-01-10      20462,9166666667
2010-01-11      23001,4583333333
          .
          .
          .

and i need to convert this table to:

Date     [0-19000]  [19000-20000]  [20000-21000]  [21000-22000] [22000-23000]  [23000-24000]

2010-01       1           2              1              0             1              6



So, i want to convert count of this value per month. please help me

i have the records from 2010-01 to 2014-07. This is only the example. I tried to understand

from similar questions but i couldn't :(
SELECT CAST(YEAR(date) AS VARCHAR(4)) + '-' + CAST(MONTH(date) AS VARCHAR(2)) AS Date
    , [0-19000] = COUNT(CASE WHEN Value&lt;=19000 THEN 1 END)
    , [19000-20000] = COUNT(CASE WHEN Value &gt; 19000 and Value&lt;=20000 THEN 1 END)
    , [20000-21000] = COUNT(CASE WHEN Value &gt; 20000 and Value&lt;=21000 THEN 1 END)
    , [21000-22000] = COUNT(CASE WHEN Value &gt; 21000 and Value&lt;=22000 THEN 1 END)
    , [22000-23000] = COUNT(CASE WHEN Value &gt; 22000 and Value&lt;=23000 THEN 1 END)
    , [23000-24000] = COUNT(CASE WHEN Value &gt; 23000 and Value&lt;=24000 THEN 1 END)
FROM [SomeTable]
GROUP BY CAST(YEAR(date) AS VARCHAR(4)) + '-' + CAST(MONTH(date) AS VARCHAR(2))