我下表指出在那里供应商提供他们的产品领域,有三列作为取决于同桌
ID Supp_ID Area_ID
1 a P
2 a R
3 a T
4 a s
. . .
. . .
5 b R
6 b T
7 b V
. . .
. . .
8 c Z
9 c R
10 c P
11 c T
. . .
. . .
. . .
的第二列的给定的值从表中的一列找到共同的价值观(路口)
现在我想这样一个存储过程,例如,如果我通过Supp_IDs A,b,C到SP,它应该返回我的Area_IDs R,T这是共同在所有3个供应商。总之,我必须为给定Supp_IDs执行Area_IDs的交叉点。
目前我想做是:
select Area_ID from Table_name where Supp_ID=a
INTERSECT
select Area_ID from Table_name where Supp_ID=b
INTERSECT
select Area_ID from Table_name where Supp_ID=c
上面的代码是很好,当我知道有确切3个Supp_IDs 但我无法找到如何在运行时使用上面的逻辑将有不同数量的Supp_ID。
现在我无法找到我应该怎么写上面的SP。
在此先感谢。
我只是澄清'3'来自'IN'子句中的参数数量。所以,除非OP找到一个方法来计算的发送到SP的参数量,那么就要添加包含Supp_ID量的额外的参数发送 –
@MostyMostacho感谢,加入澄清的答案,希望它有助于 –
@Roman Pekar,\t Mosty Mostacho非常感谢我的意见。 –