我使用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 Id
和Amount
中,我有相同的费用ID,但值是正数和负数。但这是反向值。我想排序像这样所有的表都得到SQL中的所有行。我可以获得所有行吗?
答案 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
);