2014-09-16 2 views
-3
Table - Activity(jobid,duedate,status) 

상태는 '완료'또는 '완료되지 않음'중 하나 일 수 있습니다. 종속 그룹을 가져올 SQL 쿼리

나는 얼마나 많은 작업

  1. 를 얻기 위해 하나의 SQL 쿼리가 필요 완료되지 완성 가진 DUEDATE있다가
  2. 얼마나 많은 작업입니다-완료되지 않은 현재 날짜보다 크면 얼마나 많은 작업
  3. duedate가 현재 날짜보다 작음

아무도 도와 줄 수 없습니까? 결과에는 3 행 2 열만 있어야합니다.

편집 : 나는 아마도 한 줄 쿼리 작업을 수행 어떤 붙박이 기능/키워드로, 가장 쿼리를 찾고 있어요. 가능한 경우 확실하지 않습니다. 이 같은

+1

출력 예제를 추가 할 수 있습니까? – jpw

+3

무엇을 시도 했습니까? 무슨 일 이니? 어떤 문제가 발생합니까? – Brandon

+0

몇 가지 노력을하고 & 여기에 도움을 요청하십시오, 당신은 매우 빠르고 정확한 답변을 얻을 것이다. – AK47

답변

-1

누구나 답장을 보내 주셔서 감사합니다. 나는 2 열로 최고의 쿼리를 찾고 있었다. 이것이 나의 해결책이다. 누구든지 짧은/좋은 버전 쿼리가 있으면 제안하십시오.

;with cte as (
select 
    case 
     when stat = 'N' and duedate > GETDATE() then 'NG' 
     when stat = 'N' and duedate < GETDATE() then 'NL' 
     else stat 
    end As S, duedate from activity) 
    select S,COUNT(*) from CTE group by (S) 
0

뭔가 :

SELECT Count(jobid) AS total, 
     'Completed' 
FROM activity 
GROUP BY status 
HAVING status = 'Complete' 
UNION 
SELECT Count(jobid) AS total, 
     'Completed Due in past.' 
FROM activity 
WHERE duedate >= Getdate() 
GROUP BY status 
HAVING status = 'Complete' 
UNION 
SELECT Count(jobid) AS total, 
     'Completed Due in past.' 
FROM activity 
WHERE duedate < Getdate() 
GROUP BY status 
HAVING status = 'Complete' 
0

시도의 경우 :

select 
    case when status='Complete' then '1' 
     when status='NotComplete' and duedate >= getdate() then '2' 
    else '3' end, 
    count(jobid) 
from Activity 
group by 
    case when status='Complete' then '1' 
     when status='NotComplete' and duedate >= getdate() then '2' 
    else '3' end 
0

이 시도 : -

SELECT COUNT(JOBID) Completed Jobs, STATUS 
FROM Activity 
WHERE STATUS = "Complete" 
GROUP BY STATUS 
    UNION 
SELECT COUNT(JOBID) Completed Jobs, STATUS 
FROM Activity 
WHERE duedate > GETDATE() AND STATUS = "NotComplete" 
GROUP BY STATUS 
    UNION 
SELECT COUNT(JOBID) Completed Jobs, STATUS 
FROM Activity 
WHERE duedate < GETDATE() AND STATUS = "NotComplete" 
GROUP BY STATUS; 

이 당신에게 도움이 될 수 있습니다.

0
Select sum(case when status = 'Complete' then 1 else 0 end) as completedJobs, 
Sum (case when status ='NotCompleted' and duedate > getdate() then 1 else 0 end) as notcompletedinDuedate, 
Sum (case when status ='NotCompleted' and duedate < getdate() then 1 else 0 end) as notcompletedJobs 
From Activity 
관련 문제