아래 표가 있습니다.중복 열을 사용하여 계산
ClientID | FileCount | LinkNumber | ActualFileCount |
----------|-----------|------------|-----------------|
1 | 1 | 0 | 1 |
----------|-----------|------------|-----------------|
2 | 1 | 0 | 1 |
----------|-----------|------------|-----------------|
3 | 2 | 0 | 2 |
----------|-----------|------------|-----------------|
4 | 1 | 123 | 1 |
----------|-----------|------------|-----------------|
5 | 1 | 123 | 0 |
----------|-----------|------------|-----------------|
6 | 2 | 456 | 2 |
----------|-----------|------------|-----------------|
7 | 2 | 456 | 0 |
----------|-----------|------------|-----------------|
8 | 2 | 456 | 0 |
----------|-----------|------------|-----------------|
9 | 1 | 789 | 1 |
----------|-----------|------------|-----------------|
10 | 1 | 789 | 0 |
기본적으로 LinkNumber가 0이면 FileCount 열을 ActualFileCount 열로 복사하십시오. 그러나 LinkNumber가 0이 아닌 경우 ActualFileCount는 해당 LinkNumber와 관련된 단일 값이어야합니다.
예를 들어 ClientID 4와 5는 남편과 아내이므로 둘 다 연결합니다. 시스템은 각 FileCount 1을 제공합니다. 그러나 링크이므로 둘 모두에 대해 하나의 ActualFileCount 만 있습니다 (둘 다 '실제 파일'만 있습니다). 내가 SQL 서버 2012로 번역 할 때 내가
If (LinkNumber = 0 then FileCount else
(If (LinkNumber for ClientID 4 = LinkNumber for ClientID 3 then 0 else FileCount)
(된 ClientID 3 clientid는 4 예를 사용하여) 엑셀 이하
내가 구문을 사용, 작동하지 않습니다.
select ClientID, file_count, LinkNumber,
If LinkNumber = 0 then file_count
else If LinkNumber + 1 = LinkNumber Then 0 else FileCount
end
as ActualFileCount
from TableA
order by LinkNumber asc
여러분 께 감사드립니다.
나는 당신이 (파티션 이상의 경우'같은 linknumber = 0 또는 ROW_NUMBER()로 찾고있을 수도 있습니다 추측 clientid에 의해 linknumber 순서) = 1 then file_count else 0 end'? – ZLK