Hello Folks! I've got the solution, putting here for future searchs:
sales = Sale.objects.extra(select={'month':'month(date_created)','year':'year(date_created)'}).values('year','month').annotate(total_month=Sum('total_value'), average_month=Avg('total_value')) This query works only using MySQL, to use with PGSQL you need to know to work with EXTRACT clauses. Cheers Rogério Carrasqueira --- e-mail: rogerio.carrasque...@gmail.com skype: rgcarrasqueira MSN: rcarrasque...@hotmail.com ICQ: 50525616 Tel.: (11) 7805-0074 Em 4 de novembro de 2010 10:34, Rogério Carrasqueira < rogerio.carrasque...@gmail.com> escreveu: > Hi Sebastien! > > Thanks for you reply. I'm a newbie on Django and I must confess > unfortunately I don't know everything yet ;-). So I saw that you made a > snippet regarding about the use of Django Cube. So, where do I put this > snippet: at my views.py? Or should I do another class at my models.py? > > Thanks so much! > > Regards, > > Rogério Carrasqueira > > --- > e-mail: rogerio.carrasque...@gmail.com > skype: rgcarrasqueira > MSN: rcarrasque...@hotmail.com > > ICQ: 50525616 > Tel.: (11) 7805-0074 > > > > 2010/10/29 sebastien piquemal <seb...@gmail.com> > > Hi ! >> >> You could also give django-cube a try : >> http://code.google.com/p/django-cube/ >> Unlike Mikhail's app, the aggregates are not efficient (because no >> optimization is made, I am working on this), but this is more than >> enough if you have a reasonable amount of data (less than millions of >> rows !!!). >> Use the following code, and you should have what you need : >> >> from cube.models import Cube >> >> class SalesCube(Cube): >> >> month = Dimension('date_created__absmonth', >> queryset=Sale.objects.filter(date_created__range=(init_date,ends_date))) >> >> @staticmethod >> def aggregation(queryset): >> return queryset.count() >> >> The advantage is that if you want to add more dimensions (type of sale/ >> place/month, etc ...), you can do it very easily. >> Hope that helps, and don't hesitate to ask me if you can't have it >> working (documentation is not very good yet). >> >> On Oct 29, 12:54 am, Mikhail Korobov <kmik...@googlemail.com> wrote: >> > Hi Rogério, >> > >> > You can givehttp://bitbucket.org/kmike/django-qsstats-magic/srca >> > try. >> > It currently have efficient aggregate lookups (1 query for the whole >> > time series) only for mysql but it'll be great if someone contribute >> > efficient lookups for other databases :) >> > >> > On 28 окт, 19:31, Rogério Carrasqueira >> > >> > <rogerio.carrasque...@gmail.com> wrote: >> > > Hello! >> > >> > > I'm having an issue to make complex queries in django. My problem is, >> I have >> > > a model where I have the sales and I need to make a report showing the >> sales >> > > amount per month, by the way I made this query: >> > >> > > init_date = datetime.date(datetime.now()-timedelta(days=365)) >> > > ends_date = datetime.date(datetime.now()) >> > > sales = >> > > >> Sale.objects.filter(date_created__range=(init_date,ends_date)).values(date_ >> created__month).aggregate(total_sales=Sum('total_value')) >> > >> > > At the first line I get the today's date past one year >> > > after this I got the today date >> > >> > > at sales I'm trying to between a range get the sales amount grouped by >> > > month, but unfortunatelly I was unhappy on this, because this error >> > > appeared: >> > >> > > global name 'date_created__month' is not defined >> > >> > > At date_created is the field where I store the information about when >> the >> > > sale was done., the __moth was a tentative to group by this by month. >> > >> > > So, my question: how to do that thing without using a raw sql query >> and not >> > > touching on database independence? >> > >> > > Thanks so much! >> > >> > > Rogério Carrasqueira >> > >> > > --- >> > > e-mail: rogerio.carrasque...@gmail.com >> > > skype: rgcarrasqueira >> > > MSN: rcarrasque...@hotmail.com >> > > ICQ: 50525616 >> > > Tel.: (11) 7805-0074 >> > >> > >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Django users" group. >> To post to this group, send email to django-us...@googlegroups.com. >> To unsubscribe from this group, send email to >> django-users+unsubscr...@googlegroups.com<django-users%2bunsubscr...@googlegroups.com> >> . >> For more options, visit this group at >> http://groups.google.com/group/django-users?hl=en. >> >> > -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-us...@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.