2009-03-30 10 views
0

Weiter zu meiner früheren Frage. Jetzt habe ich zwei verschiedene Abfragen, die funktionieren. Die erste Abfrage gibt ein Ergebnis von 5092 zurück und die zweite gibt ein Ergebnis von 1885 zurück, das zu 6977 addiert. Ich möchte sie zu einer Abfrage kombinieren, um ein Ergebnis von 6977 zurückzugeben. Wie kann ich eine Abfrage die Anzahl der Bedingungsermittlungsdaten zählen lassen? aktiv, überfällig über 14 Tage und null (gilt als überfällig)? Danke im Voraus.Count DIFFDATE Überschreitung eines bestimmten Wertes - Schritt 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 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 

Antwort

1

Wenn Sie nur eine Anzahl von Aufzeichnungen wollen, die entweder von Kriterien passen, nur ein or verwenden in Ihrem where Klausel :

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

Vorausgesetzt, dass ich nur OR die beiden Bedingungen richtig verstehen zusammen:

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 
Verwandte Themen