그것은 종류의 힘들을 사용하지 않고 각 그룹의 최소 받기하지만 난 내가 한 다음에 cardNumberTSQL :이 설명하는 내부 쿼리
에 의해1
2
을 그룹을했다
DateTime ID# Type Cost
8/1 8pm 1 Activate 2
8/1 8pm 1 Add 15
8/1 10am 1 Add 30
8/1 1pm 1 Use NULL
8/5 6pm 1 Use NULL
8/5 11pm 1 Add 14
8/12 9am 1 Use NULL
8/15 11am 1 Add 100
8/15 1130am 1 Add 10
8/15 5pm 1 Use NULL
8/1 8pm 2 Activate 2
8/1 8pm 2 Add 15
8/1 10am 2 Add 30
8/1 1pm 2 Use NULL
8/3 6pm 2 Use NULL
8/3 12pm 2 Add 14
8/12 9am 2 Use NULL
8/15 11am 2 Add 90
8/18 5pm 2 Use NULL
이 테이블이 있다고 가정 해 :
SELECT CardNumber
,SUM(Case when Type = 'Add' then Cost ELSE 0 END) as totalMoneyAdd
FROM Table
Group by CardNumber
1 169
2 105
은 지금은 내부 쿼리 또는 중첩 된 쿼리를 사용하지 않고 다른 열을 추가 할 각 ID 번호는 시간이되도록 매일 각 ID #의 초기 추가 합계 만 사용하는 집계 합계 열을 작성하십시오.
예를 들어 ID # 1은 8/1, 8/5, 8/12 및 8/15에서 활성화됩니다. 8/1에서 자세히 살펴보면 ID # 1의 초기 '추가'는 15 달러, 8/5는 14, 8/12는 0, 8/15는 100입니다. 이니셜을 모두 추가하면 ID # 1은 129 달러. 같은 계산은 2
가 SO 전체 내가 원하는 아이디 #에 적용됩니다 :
1 169 129
2 115 119
그리고 나는 단지
SELECT CardNumber
,SUM(Case when Type = 'Add' then Cost ELSE 0 END) as totalMoneyAdd
--,Add calculations here to calculate this new column
FROM Table
Group by CardNumber
처럼 열을 추가하여 의미 내부 쿼리 또는 중첩 된 쿼리를 사용하지 않고이를 달성 할
일종의 파티션을 사용하려고 생각하고 있지만 중개 쿼리 나 from 절 내부에서 쿼리를 작성해야합니다. 이것이 가능한지 알고 싶습니다.
내가 공통 테이블 식 또는 두 가지를 사용하십시오. – Malk
CTE를 사용하지 않고 이것이 가능합니까? –
저는 그렇게 생각하지 않습니다. 이것에 창 함수를 추가하려고하면'창 함수를 다른 창 함수 또는 집계의 컨텍스트에서 사용할 수 없습니다. ' – Malk