나는 over partition by 절을 사용하여 사람들의 월간 수치를 계산합니다.'over partition by'에서 중복 제거
내 결과의 짧은 예 :
Date Person Team Daily Figure Month To Date
24/09/17 James 2 50 200
24/09/17 James 2 50 200
25/09/17 James 2 50 200
25/09/17 James 2 50 200
내가 사람을 통해 매일 그림과 예를 들어 월을 분할하여 매월 수치를 계산하고
CASE
WHEN
MONTH([DATE]) = MONTH(getdate())
THEN SUM(Figure)
OVER (PARTITION BY [Name],
MONTH(DATE]))
ELSE 0
END AS 'Month To Date'
중요한 문제는 현재 일일 수치를 전체 월 값으로 표시하고 싶다는 것입니다. I 그룹은 내가 분명히
Date Person Team Daily Figure Month To Date
25/09/17 James 2 100 800
매일 그림으로 나를 잎 날짜 그림을 달 합계해야 할 사람이 그룹에 수 있기 그러나 오늘날 각 개인과 한계에 대한 그림은 정확하지만 분명히 합산 나에게 틀린 그림을주는 복제 된 행.
오늘의 이상적인 결과는 다음과 같습니다 중복 된 행
Date Person Team Daily Figure Month To Date
25/09/17 James 2 100 200
합니다.
누구에게이 문제에 대해 조언이 있습니까?
각 행은 단지 각 사람에 대한 개별 인물이다 : 난 그냥 날짜 그림에 대한 올바른 달
UPDATE를 그룹화 얻을 수 있도록 기본적으로 중복 분할 된 행을 제거합니다. 각 인물이 그룹화되어있어 매일 각 인물에 최소한 20 행의 별도 행이있을 수 있습니다.
나는 당신이하고 싶은 것을 따라갈 수 없다. 어떤 데이터로 시작 했습니까? 각 행의 정의는 무엇입니까? –
귀하의 쿼리 또는 원시 데이터를 게시하는 것이 도움이 될 것입니다 - 당신이 현재의 결과에서 나는 당신이 창 기능 대신 그룹을 사용하여 달성 할 수 있다고 생각하기 때문에 –
문제는 그 순간에 나는 단지 일일 수치뿐만 아니라 그들의 전체 달 합계가 필요하다는 것입니다. 잘. 그래서 그것이 그 날에 대해 단지 합계를 계산하기 때문에 나던 그만큼 그룹을 계산합니다 - 창 함수는 유일한 옵션 인 것처럼 보이지만 그 사람 이름과 일치하는 모든 행에 대해 중복 된 합계를 만듭니다. –