我有下表
item_id dep_id value_id
67 20 3
67 20 2
68 20 8
68 20 8
68 20 8
97 16 3
我需要确保每个department_id中的每个项目的表都具有相同的value_id。换句话说,对于给定的department_id,我不能有一个具有不同value_id的item_id。
在上面的示例中,前两行无效,因为department_id 20中的项67显示为具有不同的value_ids(3,2)
是否有执行查询以捕获“异常”?我正在使用SQL Server 2005
提前致谢!
答案 0 :(得分:4)
这将列出(item_id,dep_id)对,其中有valud_is不同。
select
item_id,
dep_id
from
table
group by
item_id,
dep_id
having
count(distinct value_id)>1
答案 1 :(得分:2)
DISTINCT通常更贵,这可能会使用更少的资源(并且还会显示两个不同的值):
select
item_id,
dep_id,
min(value_id),
max(value_id)
from
table
group by
item_id,
dep_id
having
min(value_id) <> max(value_id)