A abordagem mais comum que vi é usar uma tabela de calendário. A configuração da tabela de calendários pode ser um pouco complicada, mas, quando você a tiver no modelo de dados, junte a tabela de calendários à tabela de vendas na data. Então você pode fatiar e cortar e agrupar por dimensões de data como ano, mês, semana, etc.
Aqui está um bom vídeo que ajuda você a configurar uma tabela de calendário básica. link