The basic idea is to make a query, which returns the value to be accumulated with the corresponding week indication, like:
SELECT YourGroupingField,
case datediff(wk, '2003-01-01', getdate()) < 30 THEN YourSumField ELSE 0 END AS Aug0,
case datediff(wk, '2003-01-01', getdate()) = 30 THEN YourSumField ELSE 0 END AS Aug1,
case datediff(wk, '2003-01-01', getdate()) = 31 THEN YourSumField ELSE 0 END AS Aug2,
case datediff(wk, '2003-01-01', getdate()) > 31 THEN YourSumField ELSE 0 END AS Aug3
FROM YourTable
You may use this query as a subquery or as a database view:
SELECT YourGroupingField, sum(Aug0), sum(Aug1), ....
FROM (YourQuery)
GROUP BY YourGroupingField
Let me know if this helps, or when you don't understand my outline.
__________________
Make everything as simple as possible, but not simpler! - A. Einstein
DB Problems?
DB Explorer, BTrieve Re-engineering, DB Conversions & ETL?
Conversion Tool