2014-12-14 3 views
0

WOPK (Work Order)가 요청되었을 때와 완료되었을 때를 나타내는 테이블 이름이 WO로되어 있습니다. 완전한 값의 값이 NULL이 아니라면 완료되었습니다.SQL + 누적 계산 및 합계

WOPK  Requested Complete 
----------- ---------- ---------- 
1111  2014-12-11 NULL 
2222  2014-12-11 2014-12-11 
3333  2014-12-11 2014-12-12 
4444  2014-12-12 2014-12-12 
5555  2014-12-12 NULL 
6666  2014-12-13 NULL 

당일 또는 그 전날의 모든 요일에 완료되지 않은 작업 주문의 누적 개수를 계산하고 싶습니다.

원하는 결과 :

Requested   Count of Not Complete Work Orders (cumulative) 
-----------  ----------------------------------------------- 
2014-12-11    2 
2014-12-12    2 
2014-12-13    3 

은 알려 주시기 바랍니다. 알리 나자리안은

+0

어떤 데이터베이스를 사용하고 있습니까? –

+0

SQL Server는 내가 사용하고있는 데이터베이스입니다. –

답변

0

당신은 상관 하위 쿼리를 사용하여이 작업을 수행 할 수 있습니다

select wo.*, 
     (select count(*) 
     from wo wo2 
     where wo2.requested <= wo.requested and 
       wo2.complete is null 
     ) as RunningNotCompleted 
from wo; 

이 표준 SQL과에서 당신이 태그 한 사람을 포함하여 거의 모든 데이터베이스를 작동합니다.

편집 : 당신은 그냥 날까지이 작업을하려면

, 다음 group by을 사용

select requested, 
     (select count(*) 
     from wo wo2 
     where wo2.requested <= wodate.requested and 
       wo2.complete is null 
     ) as RunningNotCompleted 
from (select wo.requested, count(*) as cnt 
     from wo 
     group by wo.requested 
    ) wodate; 

나는이 표준 SQL이라는 점에 유의하고 데이터베이스에서 실행됩니다. 그러나 SQL Server와 MySQL에 고유 한 다른 방법이 있습니다.

+0

첫 번째 날짜에서 볼 수 있듯이 첫 번째 날짜에는 답변이 작동하지 않습니다. 2014-12-11 1 완료되지 않은 한 작업 주문이 표시되지만 2014-12-11에 테이블에서 볼 수 있듯이 2 작업 지시가 완료되지 않았습니다. –

+0

이것에 대한 귀하의 생각은 무엇입니까? –

+0

선택 WO. * (선택 수 (*) wo2.requested WO2 WO에서 <= wo.requested 및 (wo2.complete 널 또는 wo.Requested