I'm not sure I understand the link between student and student_class. Does
student.class_name reference class_name.id?
Anyway, I think you need to be joining things up properly, and grouping by
student:
def generate_report():
marks=db(
(db.student_class.class_name=='5A')
& (db.student.class_name == db.student_class.id)
& (db.marks.student == db.student.id)
).select(
db.marks.avg().with_alias('average_marks'),
groupby=db.marks.student,
orderby=~db.marks.avg()
)
return locals()
Then you can find the position in the rowset.
On Thursday, 30 November 2017 10:27:09 UTC, mostwanted wrote:
>
>
>
> On Thursday, November 30, 2017 at 12:03:06 PM UTC+2,
> [email protected] wrote:
>>
>> I think you need to give a bit more context. What are your model
>> definitions for db.student_class and db.marks? Does each student have
>> multiple rows in the marks table?
>>
>
>
>
> *THESE ARE MY MODEL DEFINITIONS:*I put up the only the ones i thought mat
> be necessary here but if u need anything else please let me know
>
>> db.define_table('student_class',
>> Field('class_name', requires=IS_NOT_EMPTY()),
>> Field('teacher', 'reference teacher'),
>> format='%(class_name)s')
>>
>> db.define_table('student',
>> Field('surname', requires=IS_NOT_EMPTY()),
>> Field('name', requires=IS_NOT_EMPTY()),
>> Field('photo', 'upload', requires=IS_NOT_EMPTY()),
>> Field('gender', requires=IS_NOT_EMPTY()),
>> Field('residence', requires=IS_NOT_EMPTY()),
>> Field('guardian', 'reference parent'),
>> Field('class_name', 'reference student_class'),
>> Field('dob', 'date', requires=IS_NOT_EMPTY()),
>> format='%(surname)s', migrate=False, false_migrate=True)
>>
>> db.define_table('marks',
>> Field('student', 'reference student'),
>> Field('subject', 'reference subject'),
>> Field('term', 'reference term'),
>> Field('marks', 'float', requires=IS_NOT_EMPTY()),
>> Field('total', 'float', requires=IS_NOT_EMPTY()),
>> Field('percentage','float', readable=False, writable=
>> False),
>> Field('average', 'float', readable=False, writable=False
>> ),
>> Field('grade', readable=False, writable=False),
>> Field('totalAverage', readable=False, writable=False),
>> Field('averageGrade', readable=False, writable=False),
>> Field('comments',type='text',requires=IS_NOT_EMPTY()))
>>
>
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.