if it will work for you, the easiest thing to do is to take what you know will be the max fields (jan, feb, mar, apr, may, etc) and put all twelve of them across the report. the ones with data will get filled in, the others will not until they have some data. how you can make sure these fields always appear in your crosstab query is to fill in the ColumnHeadings property with "Jan", "Feb", etc..so the col headings will always appear regardless of if they have data or not. this is the equiv of cosmo's IN statement. the problem of course will be if you want to see, say, 12 rolling months, not in the same year. if that is the case, then more crazy programming will be involved. but if you can live with jan-dec and it will only be one calendar year at a time, then you're set.