2011-08-03 6 views
0

私は2回見て差を計算し、別のフィールドに値(秒単位)を入れます。私はそのフィールドを並べ替えます。問題は、時代のうちの1つが空の場合、新しいフィールドの行は移入されないため、ソートすると、その中に何も配置されていない行がソートされます。アクセス2010 - nullで値を置き換える必要があります

私がしたいのは、nullを別の値に置き換えることです。 9999999のようなものです。ソートを実行すると、999999の行がソートの最後に配置されます。

ここには、クエリのSQL式があります。

SELECT FOCFClassic.FirstName, FOCFClassic.LastName, FOCFClassic.[Bib#], FOCFClassic.[2011SDStartTime], FOCFClassic.[2011SDFinishTime], Diff2Dates("ns",[FOCFClassic].[2011SDStartTime],[FOCFClassic].[2011SDFinishTime]) AS 2011SDRunTime, FOCFClassic.SDCategory, FOCFClassic.Team, FOCFClassic.SDRank, DateDiff("s",[2011SDStartTime],[2011SDFinishTime]) AS TotalTime 
    FROM FOCFClassic 
    WHERE (((Diff2Dates("ns",[FOCFClassic].[2011SDStartTime],[FOCFClassic].[2011SDFinishTime]))<>"") AND ((DateDiff("s",[2011SDStartTime],[2011SDFinishTime])) Is Not Null)) 
    ORDER BY FOCFClassic.SDRank, DateDiff("s",[2011SDStartTime],[2011SDFinishTime]); 

私はこのことでノブであり、私は必要とされています。

ありがとうございます。 Gordon

+0

DateDiff式でnullを除外しているのは、私が現在動作させようとしているところです。私が達成する必要があるのは、nullがあれば999999に置き換える必要があるということです。これを行うことができれば、ORDER BYを実行して99999の行をソートの最下部に配置します。希望が役立ちます。ありがとう! –

答えて

1

NZ()関数を使用することができます。NZ(MyDate, #1/1/1950#)は、フィールドがnullの場合は1950年1月1日を、そうでない場合はフィールド値を返します。 IIF()およびISNULL()関数またはIS NULL条件を使用して同じ結果を得ることができます。
パフォーマンス面では、IIF(myDate IS NULL, #1/1/1950#, myDate)を使用するのが最も速くなるはずです。

+0

私はこれをSortedTimeを使って別のフィールドを作成することができました。IIf([TotalTime] Is Null、999999、[TotalTime])その後、そのフィールドでソートしました。ありがとう! –

関連する問題