카운트 값을 기준으로 SourceId 및 통화를 선택하고 싶습니다. 문제는 세트 내에 있습니다 .0보다 큰 값이 있으면 Count = 0 인 모든 데이터를 무시하지만 그룹 내 모든 카운트가 0이면 모든 값을 고려해야합니다.
샘플 1
Id(PK) SourceId SourceValue Currency Count Remarks
1 1000001 ABC EUR 70000 Pick this
2 1000002 ABC EUR 0 Ignore
3 1000003 ABC EUR 0 Ignore
4 1000002 ABC EUR 0 Ignore
5 1000003 ABC EUR 40 Pick this
6 1000001 ABC EUR 10 Pick this
7 1000004 ABC GBP 2000 Pick
8 1000004 ABC GBP 200 Pick
9 1000005 ABC USD 2000 Only pick this
샘플 2
Id(PK) SourceId SourceValue Currency Count Remarks
1 1000001 ABC EUR 0 Pick
2 1000002 ABC EUR 0 Pick
3 1000003 ABC EUR 0 Pick
4 1000002 ABC EUR 0 Pick
5 1000003 ABC EUR 0 Pick
6 1000001 ABC EUR 0 Pick
7 1000004 ABC GBP 2000 Pick
8 1000004 ABC GBP 200 Pick
9 1000005 ABC USD 2000 Only pick this
데이터를 다른 방식으로 그룹화하여 집계 함수를 시도했지만 아무것도 작동하지 않는 것 같습니다. 도움이된다면 SQL 2008을 사용하고 있습니다.
IF OBJECT_ID ('Tempdb..#TempTab') IS NOT NULL BEGIN DROP TABLE #TempTab END
CREATE TABLE #TempTab (Id int IDENTITY (1,1), SourceId int, SourceValue varchar(10), Currency varchar(3), Volume int)
INSERT INTO #TempTab(SourceId,SourceValue,Currency,Volume) VALUES(1000001,'ABC','EUR',70)
INSERT INTO #TempTab(SourceId,SourceValue,Currency,Volume) VALUES(1000002,'ABC','EUR',0)
INSERT INTO #TempTab(SourceId,SourceValue,Currency,Volume) VALUES(1000003,'ABC','EUR',0)
INSERT INTO #TempTab(SourceId,SourceValue,Currency,Volume) VALUES(1000003,'ABC','EUR',40)
INSERT INTO #TempTab(SourceId,SourceValue,Currency,Volume) VALUES(1000001,'ABC','EUR',10)
INSERT INTO #TempTab(SourceId,SourceValue,Currency,Volume) VALUES(1000004,'ABC','GBP',200)
INSERT INTO #TempTab(SourceId,SourceValue,Currency,Volume) VALUES(1000004,'ABC','GBP',20)
INSERT INTO #TempTab(SourceId,SourceValue,Currency,Volume) VALUES(1000005,'ABC','USD',200)