다른 표를 결합하고 계산을 할 때 자체적으로 표에 가입해야합니다. 나는 SQL Server 2008 R2를 사용하고 있습니다.십자가에 십자가에 합계하여 표에 합치기
현재 상태 - 3 개의 테이블 MergedSessionsID, EventsSeparated 및 EventsDescriptions이 있습니다.
MergedSessionsID, 여기는 데이터를 조작하는 곳입니다. 본질적으로 회사 이름과 세션 시간 (데이터의 예는 아래 참조)을 지정함으로써 세션입니다.
이벤트 분류 된 테이블은 MergedSessionsID와 연결됩니다. 기본적으로 세션에는 하나 이상의 이벤트가있을 수 있습니다.
EventsDescription 테이블에는 이벤트에 대한 설명이 들어 있습니다. 이것과 그것은 사용자에게 일어난다.
여기 내 목표는 일정 기간 동안 발생한 총 이벤트 수를 이해하는 것입니다. Exhibit 1은 아래 쿼리를 실행 한 결과입니다.
그러나 나는 또한 과을 비교하여 이전 데이터와 새 데이터를 비교하고 이벤트 수가 어떻게 변경되었는지 확인하십시오. 따라서 Exhibit 2에서와 같이 2210 년 3 월의 데이터에 대한 PreCounter와 2210 년 4 월의 데이터에 대한 PostCounter를 보여주는 것이 상상합니다.
이것을 구현하는 가장 좋은 방법은 무엇입니까?
SELECT E.[Event]
,COUNT(1) AS Counter
,ED.[Event Description]
FROM [ShipCompanies].[dbo].MergedSessionsID AS S
INNER JOIN [ShipCompanies].dbo.EventsSeparated AS E
ON S.ID = E.ID
INNER JOIN [ShipCompanies].dbo.EventDescription AS ED
ON E.[Event] = ED.[Unique ID]
WHERE S.Company = 'SuperSpaceShipOne'
AND S.[Session Time] BETWEEN '2210-03-02' AND '2210-03-05'
GROUP BY E.[Event], ED.[Event Description]
ORDER BY E.[Event]
SELECT * FROM MergedSessionsID
ID Company Session Time
1 SuperSpaceShipOne 2210-03-05
2 SuperSpaceShipOne 2210-03-03
3 SuperSpaceShipOne 2210-03-02
4 SuperSpaceShipOne 2210-04-01
5 SuperSpaceShipOne 2210-04-02
6 SuperSpaceShipOne 2210-04-03
SELECT * FROM EventsSeparated
ID Event
1 2000
2 2001
2 2002
3 2001
4 2002
5 2002
6 2002
SELECT * FROM EventDescription
Unique ID Event Description
2000 'User Entered the Pod'
2001 'User Initiated Launching Sequence'
2002 'User Error encountered'
전시 1. 병합 된 출력 요약 표 (내가 지금 무엇을 가지고)
Event Counter Event Description
2000 1 'User Entered the Pod'
2001 2 'User Initiated Launching Sequence'
2002 1 'User Error encountered'
전시 2. 병합 된 출력 요약 표 (I가 얻고 싶은 무엇)
Event PreCounter Event Description PostCounter
2000 1 'User Entered the Pod' 0
2001 2 'User Initiated Launching Sequence' 0
2002 1 'User Error encountered' 3
병합 된 세션 데이터 값이 '2210-04-10'이라고 가정합니다. 그것은 계산되어야 할 것인가? 즉, 게시자 기간은 어떻게 결정되어야합니까? 종료일 한 달 후 (예 :'2210-04-05')? – Thomas
나는 게시물 카운터 날짜를 지정할 것입니다. 프리 카운터는 현재 2210-03-02와 2210-03-05 사이의 범위입니다. 마찬가지로 포스트 카운터는 2210-04-02와 2210-04-05의 범위가됩니다. – firedrawndagger
Ok. 두 날짜 범위를 모두 넘기면 문제가 더 쉽습니다. – Thomas