에 내가 비율을 포함하는이 테이블로 가입하려는 차원 테이블을하지 테이블
@dimensions
Dateid Rep Mkt Prodgroup
201111 002 S 001
201111 002 R 001
201111 002 S 002
201111 002 R 002
201111 002 S 003
201111 002 R 003
201111 002 S 004
201111 002 R 004
...
이있는 경우 모든 다른 값에 가입하세요.
@percentageincrease
Prodgroup Mkt Percent
ALL S 1.05
ALL R 1.06
002 S 1.07
002 R 1.08
003 S 1.09
003 R 1.10
나는 Mkt
및 Prodgroup
에 그들과 합류 할 위치 @dimensions.Prodgroup IN @percentageincrease.Prodgroup
및 not in
이 다음 ALL에 참여하는 경우. 그래서 출력 테이블 내가
on case p.Prodgroup
when N'ALL'
then d.prodgrpid
else p.Prodgrpid = d.prodgrpid
AND p.Mkt = d.Mkt
을 시도 내 조인 조건으로
Dateid Rep Mkt Prodgroup Percent
201111 002 S 001 1.05 // joined on ALL
201111 002 R 001 1.06 // joined on ALL
201111 002 S 002 1.07 // joined on 002
201111 002 R 002 1.08 // joined on 002
201111 002 S 003 1.09 // joined on 003
201111 002 R 003 1.10 // joined on 003
201111 002 S 004 1.05 // joined on ALL
201111 002 R 004 1.06 // joined on ALL
...
것하지만 나에게 @percentageincrease 테이블에 있던 튜플도했다
Dateid Rep Mkt Prodgroup Percent
201111 002 S 001 1.05
201111 002 R 001 1.06
201111 002 S 002 1.07
201111 002 R 002 1.08
201111 002 S 002 1.05 //Joined on ALL
201111 002 R 002 1.06 //Joined on ALL
201111 002 S 003 1.09
201111 002 R 003 1.10
201111 002 S 003 1.05 //Joined on ALL
201111 002 R 003 1.06 //Joined on ALL
201111 002 S 004 1.05
201111 002 R 004 1.06
...
했다 ALL 조건에 합류했습니다.
이 쿼리는 SQL Server 2008에서 더 큰 쿼리의 일부로 저장 프로 시저로 실행됩니다.
에 수정을 [이] (http://sqlfiddle.com/#! 6/7aa65/1) –
@ JohnWoo eh ????? – podiluska
sqlfiddle에서 쿼리를 테스트 한 결과를 확인합니다. http://sqlfiddle.com/#!6/7aa65/1 그런데'Prodgroup'의 데이터 타입을 바꾸는 것을 잊지 마세요 –