检查相同的ID是否具有确定条件

时间:2018-08-29 18:53:11

标签: sql sql-server

我的桌子上有一个产品列表,每个产品可以有一个或多个演示文稿。

例如,我的代码A1234可以显示为“厘米”,“米”,“单位”

PrdId   PresId
A1234 | 'CM'
A1234 | 'MT'
A1234 | 'UN'

而且,每个演示文稿都有可能具有不同的属性

示例

PrdId   PresId   ForSales  ForReplacement
A1234 | 'CM'   | N        | S
A1234 | 'MT'   | N        | N
A1234 | 'UN'   | S        | N

因此,我想进行查询以检查是否有确定的代码,例如没有检查“销售”属性。 只有一个演示文稿可以选中“用于销售”,但是可以存在许多演示文稿而不必具有此选中项。

有人可以建议我怎么做吗?

因为如果我创建一个查询,其中按产品过滤属性“用于销售”的值为N,则我不验证该属性不存在,我只是以该演示文稿不适用的条件为条件出售。

1 个答案:

答案 0 :(得分:0)

我认为您正在检查它是否不出售或不存在。如果是这样,并假设您有两个表productattribute

select p.*
from product p
left join attribute a on a.PrdId=p.PrdId and a.PresId=p.PresId
where isnull(a.ForSales,'N')='N'

,或者如果要获取所有产品和“销售”列:

select p.*, isnull(a.ForSales,'N') as ForSales, isnull(a.ForReplacement,'N') as ForReplacement
from product p
left join attribute a on a.PrdId=p.PrdId and a.PresId=p.PresId