web2pyのgroupbyとorderby

私は3つのテーブルを持っています:

db.define_table('projects',Field('name'))
db.define_table('tests',
                Field('name'),
                Field('project',db.projects, notnull=True))
db.define_table('results',
                Field('test',db.tests, notnull=True),
                Field('status'),
                Field('started', 'datetime', writable=False))

合格と不合格のテスト数のプロジェクトのリストを持っていたいと思います。最新の結果のステータスが「合格」の場合、テストは合格/不合格となります。テストの結果がない場合、ステータスは「なし」にする必要があります。

1
...あなたの質問は?あなたはそれを達成しようとしましたか?
追加された 著者 mathematical.coffee,
合格と不合格のテストの数を含むプロジェクトのリストを取得するにはどうすればよいですか?
追加された 著者 bennymo,

1 答え

手続き型のものを試すことができます

for project_row in db(db.projects).select():
    numPassed = 0
    numFailed = 0
    numNull =0
    num = 0
    for test_row in db(db.tests.project==project_row).select():
        results=db(db.results.test==test_row).select(orderby=~db.results.started,
                                                       limitby=0)
        if len(results) == 0:
            numNull += 1
        elif results[0].status=="pass":
            numPassed +=1
        else:
            numFailed +=1
    print project_row.name, numPassed, numFailed, numNull
0
追加された
私は、groupbyなどを使ってそれを一つ選択することを望んでいました。
追加された 著者 bennymo,