2012-02-06 68 views
1

我有三個表:GROUPBY和排序依據在web2py中

 
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)) 

我想有個項目,通過和失敗的測試數量的列表。如果最新結果的狀態爲「通過」,則測試通過/失敗。如果沒有測試結果,則狀態應爲無。

+0

......和你的問題是什麼?你有什麼努力去實現它? – 2012-02-06 13:42:04

+0

如何獲取包含通過和失敗測試次數的項目列表? – bennymo 2012-02-07 06:03:27

回答

0

你可以嘗試一些程序

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 2012-02-08 07:15:33