我有一个维度表加入对其他一切价值,如果没有在表
@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
然后加入上的所有。所以输出表将
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表中的元组也加入全部条件。
这是作为一个更大的查询的一部分在SQL Server 2008上作为存储过程运行。
作出修改[这](http://sqlfiddle.com/#! 6/7aa65/1) –
@JohnWoo eh ????? – podiluska
我在sqlfiddle中测试了您的查询并查看结果。顺便说一下http://sqlfiddle.com/#!6/7aa65/1不要忘记转换'Prodgroup'的数据类型 –