where date_column between (current date - 1 month) and (current date-1 day)
and (dayofweek (inv_start_date)= 2)
Will only report on day of week = 2 for the entire month.
Do you have a calendar table? Use that. Get the min and max monday dates for your month.
Though I must admit, your data will not be accurate with actual numbers. Take the months of March and April for instance. You will have the March report give you data for dates 3/3/14 - 3/31/14 and then your April dates will be 4/7/14 - 4/28/14. Missing a total of 10 days in those 2 months of reports.
The data on that table is from Monday to Monday. (March 3-10,March 10-17 etc). So only
"where date_column between (current date - 1 month) and (current date-1 day) "seems to work.i checked "select (current date - 1 month) from sysibm.sysdummy1" and it returns 2014-03-24.So ideally if the report is run on the first day of any month,it should provide the data for the previous month as per the where condition.