我需要一个可以执行以下操作的查询。 我有一个有2列的表
ID Values
1 1
1 2
1 3
1 4
2 2
2 5
2 6
如果您看到ID 1我有1,2,3和4作为值,对于ID 2我有2,5和6。
我想编写一个返回以下内容的查询
1( - ) 4( - ) 5(+) 6(+)
删除平均值1和4,并通过比较两个ID来添加5和6。
有可能吗?请让我知道
由于
答案 0 :(得分:0)
类似的东西:
(
SELECT T.Value FROM dbo.Table T WHERE T.ID = 1
EXCEPT
SELECT T.Value FROM dbo.Table T WHERE T.ID = 2
)
UNION
(
SELECT T.Value FROM dbo.Table T WHERE T.ID = 2
EXCEPT
SELECT T.Value FROM dbo.Table T WHERE T.ID = 1
)
这将获得与1相关但不是2和2但不是1的值的列表。您可以轻松地将这些子查询中的一个值乘以-1来区分它们,或者将它们作为两个单独运行查询。
答案 1 :(得分:0)
这将给你1& 4:
select a.values
from my_table a
where not exists (
select * from my_table b where b.values = a.values and b.ID = 2)
and a.ID = 1
这将给你5& 6:
select a.values
from my_table a
where not exists (
select * from my_table b where b.values = a.values and b.ID = 1)
and a.ID = 2