A common setup is one tab per month with the same columns. To report across them, stack the tabs inside QUERY with braces and a semicolon: QUERY({Jan!A2:C; Feb!A2:C}, ...).
Three things change once the data is a stacked array:
- It's an array, not a range, so columns are
Col1, Col2, Col3, never A, B, C.
- Open-ended ranges like
A2:C keep working as rows are added, but they bring the empty rows below each tab along. Add where Col1 is not null to drop them.
- Start each range at row 2 so the headings aren't stacked into the data, and set the headers argument to 0. Then name your columns with
label.
Everything else, where, group by, order by, works as before.