2011-02-02 6 views
0

ColdFusionとStudent Certificationsのモジュールシリーズの続きで、私は少し問題を思いつきました。SQL Server 2008:DateDiff負の値を返す

以下のクエリを使用してColdfusionの値を返すと、除外日と前回の日付が取得されます。

私が必要とするのは、今日よりも大きいか等しい日付を返すことです。したがって、cprAdultExpが2/27/2011の場合、その値を25として返す必要があります。一方、kidExpが1/2/2011私は何も返すことが必要です。

どのような考えですか?

SQL:

SELECT 
p.firstName, 
p.lastName, 
m.profileID, 
dateDiff(day,getDate(),m.cprAdultExp) as adultExp, 
dateDiff(day,getDate(),m.cprInfantChildExp) as kidExp, 
dateDiff(day,getDate(),m.cprFPRExp) as frpExp, 
dateDiff(day,getDate(),m.aedExp) as aExp, 
dateDiff(day,getDate(),m.firstAidExp) as aidExp, 
dateDiff(day,getDate(),m.emtExp) as eExp, 
dateDiff(day,getDate(),m.waterSafetyInstructionExp) as waterExpt, 
dateDiff(day,getDate(),m.bloodPathogensExp) as bloodExp, 
dateDiff(day,getDate(),m.oxygenAdminExp) as oxyExp, 
dateDiff(day,getDate(),m.lifegaurdingExp) as lifeExp, 
dateDiff(day,getDate(),m.wildernessResponderExp) as wildExp, 
m.certNotes 
FROM 
pro_Profile p 
LEFT JOIN mod_StudentCertifications m 
ON 
    m.profileID = p.profileID 
WHERE 
p.isDeleted='False'   
+1

WHERE句に条件を含めるだけの理由はありますか? – Matthew

答えて

3

ような何か:

CASE WHEN m.cprAdultExp > getDate() THEN dateDiff(day,getDate(),m.cprAdultExp) ELSE NULL END as adultExp 

はそれが右か?

+0

各要素について大文字小文字を使用しますか? –

+0

@ user494901:はい。 – orangepips