寸法表があります
@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に参加したいと思います。したがって、出力テーブルは次のようになります。
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
...
私の参加条件として私は試しました
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
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
...
@percentageincreaseテーブルにあったタプルもALL条件で結合されました。
これは、SQL Server 2008で、より大きなクエリの一部としてストアドプロシージャとして実行されています。