Niphlod, this is what i got, using distinct argument or not:
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
613, 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
528, in timeline_opm
print db.contadores._count(distinct=db.contadores.id_impressora)
File "C:\web2py\gluon\dal.py", line 5542, in __getattr__
return self[key]
File "C:\web2py\gluon\dal.py", line 5482, in __getitem__
return dict.__getitem__(self, str(key))
KeyError: '_count'
@Bruno
While I can`t get all grouped records at once I am query them individually
one by one using argument distinct
for dias in range(loop_back):
d = timedelta(days=dias)
dias_passado = dia_hoje - d
header.append(TH(dias_passado.strftime("%d/%m"),_width='60px'))
contador_no_dia =
db((db.contadores.id>0)&(db.contadores.data==dias_passado)).count(distinct=db.contadores.id_impressora)
Em sexta-feira, 9 de março de 2012 10h54min59s UTC-3, Niphlod escreveu:
>
> 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.id_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.count(distinct=('id_impressora'))
>>>>>> TypeError: count() got an unexpected keyword argument 'distinct'
>>>>>>
>>>>>>
>>>>>> How can I use distinct count here?
>>>>>>
>>>>>