the only argument you can pass to count() is a fieldname, so it will countusing distinct db(db.products.id>0)._count('id') >>> 'SELECT count(DISTINCT id) FROM products WHERE (products.id > 0)'
On Fri, Mar 9, 2012 at 10:54 AM, Niphlod <niph...@gmail.com> wrote: > ooops, sorry, the _count method is on the table, not the field > try with > > db.contadores._count(distinct=db.contadores.id_impressora) > > > > Il giorno venerdì 9 marzo 2012 13:37:16 UTC+1, Fabiano Faver ha scritto: > >> I have phpmyadmin to test it but I didn`t manage to get the generated sql >> using underline. >> >> with or without distinct argument it gives >> >> >> Traceback (most recent call last): >> File "C:\web2py\gluon\restricted.**py", line 204, in restricted >> >> exec ccode in environment >> >> File "C:/web2py/applications/OPM/**controllers/default.py" >> <http://127.0.0.1:8000/admin/default/edit/OPM/controllers/default.py>, line >> 610, in <module> >> >> File "C:\web2py\gluon\globals.py", line 172, in <lambda> >> >> self._caller = lambda f: f() >> >> File "C:\web2py\gluon\tools.py", line 2533, in f >> >> return action(*a, **b) >> >> File "C:\web2py\gluon\tools.py", line 2533, in f >> >> return action(*a, **b) >> >> File "C:/web2py/applications/OPM/**controllers/default.py" >> <http://127.0.0.1:8000/admin/default/edit/OPM/controllers/default.py>, line >> 529, in timeline_opm >> >> print >> db.contadores.id_impressora._**count(distinct=db.contadores.i**d_impressora) >> AttributeError: 'Field' object has no attribute '_count' >> >> >> Em sexta-feira, 9 de março de 2012 09h13min01s UTC-3, Niphlod escreveu: >>> >>> ok, can you print here what is the result of : >>> >>> db.contadores.id_impressora._**count(distinct=db.contadores.** >>> id_impressora) >>> >>> (mind the _ before count.) >>> >>> If you can fire off queries on your db using another tool than web2py >>> (let's say, phpmyadmin), try to copy the resulting string into that and >>> watch if the query raises an error. >>> >>> Il giorno venerdì 9 marzo 2012 13:02:49 UTC+1, Fabiano Faver ha scritto: >>>> >>>> MySQL >>>> >>>> Em sexta-feira, 9 de março de 2012 08h59min46s UTC-3, Niphlod escreveu: >>>>> >>>>> what db are you using ? >>>>> >>>>> >>>>> Il giorno giovedì 8 marzo 2012 15:20:17 UTC+1, Fabiano Faver ha >>>>> scritto: >>>>>> >>>>>> I`m trying to select distinct printers used in each day but i`m not >>>>>> managing to use the distinct argument >>>>>> >>>>>> count = db.contadores.id_impressora.**count() >>>>>> for row in db((db.contadores.id>0)&(db.**contadores.data<=today)).** >>>>>> select(db.contadores.data,**count,groupby=db.contadores.**data): >>>>>> print row.contadores.data, row[count] >>>>>> >>>>>> if I use something like >>>>>> db.contadores.id_impressora.**count(distinct=db.contadores.** >>>>>> id_impressora) >>>>>> >>>>>> it gives: >>>>>> >>>>>> >>>>>> Traceback (most recent call last): >>>>>> >>>>>> File "C:\web2py\gluon\restricted.**py", line 204, in restricted >>>>>> >>>>>> exec ccode in environment >>>>>> >>>>>> File "C:/web2py/applications/OPM/**controllers/default.py" >>>>>> <http://127.0.0.1:8000/admin/default/edit/OPM/controllers/default.py>, >>>>>> line 581, in <module> >>>>>> >>>>>> File "C:\web2py\gluon\globals.py", line 172, in <lambda> >>>>>> >>>>>> self._caller = lambda f: f() >>>>>> >>>>>> File "C:/web2py/applications/OPM/**controllers/default.py" >>>>>> <http://127.0.0.1:8000/admin/default/edit/OPM/controllers/default.py>, >>>>>> line 516, in timeline_opm >>>>>> >>>>>> count = >>>>>> db.contadores.id_impressora.co**unt(distinct=('id_impressora')**) >>>>>> TypeError: count() got an unexpected keyword argument 'distinct' >>>>>> >>>>>> >>>>>> How can I use distinct count here? >>>>>> >>>>> -- Bruno Rocha [http://rochacbruno.com.br]