【发布时间】:2013-10-16 06:06:00
【问题描述】:
我在下表中指定了供应商交付产品的区域,其中包含三列
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_ID 执行 Area_ID 的 交集。
目前我正在尝试的是:
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
当我知道有确切的三个 Supp_ID 时,上面的代码很好 但是当 Supp_ID 的数量不同时,我无法找到如何在运行时使用上述逻辑。
现在我无法找到我应该如何在 SP 上面写。
提前致谢。
【问题讨论】:
标签: sql sql-server intersection intersect