또 다른 초보자 질문,SQL 선택은 여기에 제대로
를 그룹화하지 나는이 선택 다음과 같습니다이 사용
SELECT
DATEADD(dd, 0, DATEDIFF(dd, 0, CIC.StatusDateTime)) AS ST_Date,
CIC.UserId,
MIN(CIC.StatusDateTime) as Beginning,
MAX(CIC.EndDateTime) as ending,
DATEPART(hour,MAX(CIC.EndDateTime) - MIN(CIC.StatusDateTime)) * 3600
+ DATEPART(minute, MAX(CIC.EndDateTime) - MIN(CIC.StatusDateTime)) * 60
+ DATEPART(second,MAX(CIC.EndDateTime) - MIN(CIC.StatusDateTime)) AS Login_Time,
SUM(CASE WHEN RS.AGT_STATE_GRP = 5 THEN StateDuration ELSE 0 END) AS Lunch,
SUM(CASE WHEN RS.AGT_STATE_GRP = 3 THEN StateDuration ELSE 0 END) AS Break_,
SUM(CASE WHEN RS.AGT_STATE_GRP = 4 THEN StateDuration ELSE 0 END) AS Coaching,
SUM(CASE WHEN RS.AGT_STATE_GRP = 10 THEN StateDuration ELSE 0 END) AS SYS_Down,
SUM(CASE WHEN RS.AGT_STATE_GRP = 7 THEN StateDuration ELSE 0 END) AS Training,
SUM(CASE WHEN RS.AGT_STATE_GRP = 6 THEN StateDuration ELSE 0 END) AS Meeting,
SUM(CASE WHEN RS.AGT_STATE_GRP = 11 THEN StateDuration ELSE 0 END) AS Default_
FROM dbo.CIC_AgentActivityLog_TMP AS CIC
INNER JOIN dbo.REF_AGT_STATES AS RS
ON CIC.StatusKey = RS.AGT_STATE_DESC
Where CIC.StatusDateTime >='2011-09-01'
GROUP BY CIC.StatusDateTime, CIC.UserId, CIC.EndDateTime
ORDER BY ST_Date,UserID,StatusDateTime;
, 나의 결과는 전혀 그룹화 것 같지 않습니다. 내가 뭘하려고하는 건 하나의 행에 날짜, userid, firstlogin, lastlogin, totallogintime 그리고 몇 초 동안의 코드를 포함하고있다. 나는 잘 작동하는 또 다른 데이터 소스와 매우 유사한 것을 가지고있다.
나는 첫 번째 날짜가 00:00:00이라고 생각해서 캐스트를 사용하여 충돌을 시도했지만 아무 소용이 없습니다. 나는 당신이 필요로하는 정보가 무엇인지 확신 할 수 없으므로 알려 주시기 바랍니다.
* 편집 1 - 내 MIN (CIC.StatusDateTime)을 시작으로 사용하면 MAX (CIC.EndDateTime) 종료가 도움이되지 않는 것 같습니다. 에이전트의 경우 시작 및 종료 시간이 서로 다른 세 개의 행이 있습니다. 최소 및 최대는 하루 종일 실제 최대 및 최소를 제공하지 않습니다. 여기
소스 데이터입니다 : 여기userID StatusDateTime StatusKey EndDateTime StateDuration
bBarsby 9/1/2011 11:36 Out of the office 9/1/2011 11:36 0
bBarsby 9/1/2011 11:36 Out of the office 9/1/2011 11:36 5
bBarsby 9/1/2011 11:36 Available 9/1/2011 14:18 9711
bBarsby 9/1/2011 14:18 Away from desk 9/1/2011 14:39 1261
bBarsby 9/1/2011 14:39 Available 9/1/2011 19:51 18693
bBarsby 9/1/2011 19:51 Out of the office 9/1/2011 19:51 4
bBarsby 9/1/2011 19:51 Out of the office 9/1/2011 19:51 0
이 결과
ST_Date UserID Beginning Ending LoginTime Lunch Break Coaching Etc.
9/1/2011 0:00 bBarsby 9/1/2011 11:36 9/1/2011 14:18 9711 0 0 0 0
9/1/2011 0:00 bBarsby 9/1/2011 14:18 9/1/2011 14:39 1261 0 0 0 0
9/1/2011 0:00 bBarsby 9/1/2011 14:39 9/1/2011 19:51 18693 0 0 0 0
또한 StatusDateTime을 사용하여 주문하지만 그 열은 선택 목록에 없습니다. –
제거한 후에도 동일한 결과가 나타납니다. – Jessica
몇 가지 샘플 데이터와 원하는 결과를 제공 할 수 있습니까? 물론,'UserID'로 그룹화한다면,'MIN'과'MAX' 연산자는 당신이 하루 안에 머무를 생각이 없습니다. WHERE 절도'< '20110902'라고해야할까요? –