시간이 열리고 닫힌 시간이 포함 된 지원 티켓 테이블이 있습니다. 다음과 같이 범위 테이블을 만들고 싶습니다.
ticket count | time to close
----------------------------------
30 | up to 2 hours
25 | 2 - 4 hours
10 | 4 - 6 hours
지금까지 내가 가진 것은 범위를 제공 하지만 ( CASE
with 사용 DATEDIFF
) 최종 범위를 그룹화하는 방법을 알 수 없습니다. GROUP
새로운 openTimeRange
계산 열에 대해 시도 할 때 물론 오류는 알 수없는 열이라는 것입니다.
SELECT COUNT([tblTickets].*), DATEDIFF(hh,[dateOpened],[closeDate]) AS OpenTime
, case when DATEDIFF(hh,[dateOpened],[closeDate]) between 0 and 2 then '0-2'
when DATEDIFF(hh,[dateOpened],[closeDate]) between 3 and 4 then '3-4'
when DATEDIFF(hh,[dateOpened],[closeDate]) between 5 and 6 then '4-6'
end as openTimeRange
FROM [tblTickets]
WHERE closeDate is not null
GROUP BY [dateOpened],[closeDate]
MSSQL 2005 SP4 사용
감사!
당신이 언급 한 바와 같이 당신이하려고하면, 원래 쿼리의 별칭 열, 오류가 발생합니다. 그 이유 는 별칭이 결과 집합에 할당 되기 전에 절이 평가 되므로 사용할 수 없기 때문입니다. 인라인보기를 사용하면 트릭을 수행 할 수 있습니다.GROUP BY
openTimeRange
GROUP BY
SELECT T.TicketCount, T.OpenTime, T.openTimeRange
FROM
(
SELECT COUNT([tblTickets].*) AS TicketCount,
DATEDIFF(hh,[dateOpened],[closeDate]) AS OpenTime,
CASE WHEN DATEDIFF(hh,[dateOpened],[closeDate]) BETWEEN 0 AND 2 THEN '0-2'
WHEN DATEDIFF(hh,[dateOpened],[closeDate]) BETWEEN 3 AND 4 THEN '3-4'
WHEN DATEDIFF(hh,[dateOpened],[closeDate]) BETWEEN 5 AND 6 THEN '4-6'
END AS openTimeRange
FROM [tblTickets]
WHERE closeDate IS NOT NULL
GROUP BY [dateOpened],[closeDate]
) T
GROUP BY T.openTimeRange
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다