2009-03-30 8 views
0

私の以前の質問に続きます。今私は2つの異なるクエリが動作します。最初のクエリは5092の結果を返し、2番目のクエリは6985までの1885の結果を返します。6977の結果を返すためにそれらを1つのクエリに結合したいと思います。 14日以上延滞していて、ヌル(延滞としてカウント)?前もって感謝します。指定された値を超えてDIFFDATEをカウントする - ステップ2

私が一緒に、正しくちょうど OR二つの条件を理解していることを提供する
select count (*) 
from task_conditionassessment t 
    inner join taskitems_conditionassessment ti on 
     t.task_conditionassessmentguid=ti.task_conditionassessmentguid 
    inner join conditionassessmentassignmentitem c on 
     ti.taskitems_conditionassessmentid=c.taskitems_conditionassessmentid 
where datediff(dd,c.conditionassessmentdate,t.nextduedate)>14 and t.isactive=1 


select t.taskname,t.nextduedate,c.conditionassessmentdate 
from task_conditionassessment t 
    inner join taskitems_conditionassessment ti on 
     t.task_conditionassessmentguid=ti.task_conditionassessmentguid 
    inner join conditionassessmentassignmentitem c on 
     ti.taskitems_conditionassessmentid=c.taskitems_conditionassessmentid 
where c.conditionassessmentdate IS NULL and t.isactive=1 

答えて

1

あなただけの基準のいずれかのセットに合わせたレコードのカウントをしたい場合は、ちょうどあなたのwhere句でorを使用:

select count (*) 
from task_conditionassessment t 
inner join taskitems_conditionassessment ti on 
    t.task_conditionassessmentguid=ti.task_conditionassessmentguid 
inner join conditionassessmentassignmentitem c on 
    ti.taskitems_conditionassessmentid=c.taskitems_conditionassessmentid 
where (c.conditionassessmentdate IS NULL or 
     datediff(dd,c.conditionassessmentdate,t.nextduedate)>14) and 
     t.isactive=1 
0

select count (*) 
from task_conditionassessment t 
    inner join taskitems_conditionassessment ti on t.task_conditionassessmentguid=ti.task_conditionassessmentguid 
    inner join conditionassessmentassignmentitem c on ti.taskitems_conditionassessmentid=c.taskitems_conditionassessmentid 
where (datediff(dd,c.conditionassessmentdate,t.nextduedate)>14 
     or c.conditionassessmentdate IS NULL) 
    and t.isactive=1 
関連する問題