2009-03-30 2 views
0

내 이전 질문에 추가. 이제는 작동하는 두 가지 다른 쿼리가 있습니다. 첫 번째 쿼리는 5092의 결과를 반환하고 두 번째 쿼리는 6985에 최대 1885를 더한 결과를 반환합니다. 하나의 쿼리로 두 쿼리를 결합하여 6977의 결과를 반환하고 싶습니다. 하나의 쿼리에서 여러 개의 조건을 계산할 수 있습니까? 14 일 이상 기한이 지나면 기한이 지났으며 기한이 지났습니까? 미리 감사드립니다. 방금 기준 중 하나 세트에 맞는 레코드 수를 원하는 경우지정된 값을 초과하는 DIFFDATE를 계산하십시오 - 2 단계

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 

답변

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

내가 제대로 이해하고 함께 단지 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 
관련 문제