Вот еще один вариант без row_number (будет работать и для SQL2k):
SELECT
D.DateValue,
(DATEPART(DD, D.DateValue) - 1) % 4 + 1 AS Col1,
DATEDIFF(DD, '20110101', D.DateValue) % 4 + 1 AS Col2
FROM D
Здесь Col1 начинает нумерацию с каждого нового месяца, а Col2 нумерует записи по всем месяцам. То есть, если вы выбрали более месяца, вы получите на границе месяца:
DateValue Col1 Col2
2011-01-29 1 1
2011-01-30 2 2
2011-01-31 3 3
2011-02-01 1 4
2011-02-02 2 1