检查重复记录值为负数和正数在SQL服务器中

时间:2016-09-26 12:11:14

标签: sql sql-server

我使用SQL Server我有记录费用表。在这个表中有4000多行查询。我想短重复记录SQL。如果哪一行具有相同的负值和正记录

示例:

这是我的表

 Expense Id      Amount:
  1234             567
  4141             677
  3434             667
  1234           - 567

但是这张表我有两个费用ID相同。但是值不同负和正我想要STORE这个值LIke

     Expense Id      Amount:
      1234             567

      1234           - 567

在表I Expense IdAmount中,我有相同的费用ID,但值是正数和负数。但这是反向值。我想排序像这样所有的表都得到SQL中的所有行。我可以获得所有行吗?

2 个答案:

答案 0 :(得分:2)

你可以自己加入表格,而不是无法匹配的数量。

//all sorted items from both
public <T> List<T> getListReunion(List<T> list1, List<T> list2) {
    Set<T> set = new HashSet<T>();
    set.addAll(list1);
    set.addAll(list2);
    return new ArrayList<T>(set);
}

//common items from both
public <T> List<T> getListIntersection(List<T> list1, List<T> list2) {
    list1.retainAll(list2);
    return list1;
}

//common items from list1 not present in list2
public <T> List<T> getListDifference(List<T> list1, List<T> list2) {
    list1.removeAll(list2);
    return list1;
}

答案 1 :(得分:1)

这样做你想要的吗?

select e.*
from expense e
where exists (select 1
              from expense e2
              where e2.expenseid = e.expenseid and e2.amount = - e.amount
             );