2010-04-09 53 views
1

首先,我仍在使用MS Access數據庫的經典ASP(vbScript)。而且,我知道它的古老,但我仍然希望我能做到這一點!ASP,使用多列條件對數據庫進行排序

所以現在我的問題:

下表以一個例子:

項目

ContactName StartDate EndDate Complete 
Mitch 2009-02-13 2011-04-23 No 
Eric 2006-10-01 2008-11-15 Yes 
Mike 2007-05-04 2009-03-30 Yes 
Kyle 2009-03-07 2012-07-08 No 

使用ASP(使用VBScript),和MS Access數據庫作爲後端,我想能夠使用以下邏輯對此表進行排序:

我想對此選項卡進行排序但是,根據給定的項目是否完整,我希望它使用「StartDate」或「EndDate」作爲特定行的參考。

因此,要進一步打破它,這是我希望實現:

的項目,其中完成=「是」, 參考「結束日期」進行排序的目的。

對於項目完成=「否」, 參考「StartDate」進行排序。

所以,如果我是排序規則如下上面的表格,輸出將是:

項目

ContactName StartDate EndDate Complete 
1 Eric 2006-10-01 2008-11-15* Yes 
2 Mitch 2009-02-13* 2011-04-23 No 
3 Kyle 2009-03-07* 2012-07-08 No 
4 Mike 2007-05-04 2009-03-30* Yes 

*我已經把明星的日期旁邊應該用於上表中的排序。

注意:這實際上是我真正需要做的簡化版本,但是我認爲如果我能弄清楚這一點,我就可以自己完成剩下的工作。

任何幫助都非常讚賞;我一直在努力爭取這個遠遠超過現在!

謝謝!

回答

2
select * 
from Projects 
order by iif(Complete = 'Yes', EndDate, StartDate) 
+0

這美麗的工作,謝謝! – Mitch 2010-04-09 19:07:21

0

您的MS Access查詢應該是這個樣子

SELECT Table1.ContactName, Table1.StartDate, Table1.EndDate, Table1.Complete 
FROM Table1 
ORDER BY IIf([Complete]="Yes",[EndDate],[StartDate]); 
相關問題