2016-09-26 36 views
0

我使用SQL Server我有記錄費用表。在這個表中有超過4000o行查詢。我想簡短重複記錄SQL。如果哪一行有相同的值陰性和陽性記錄檢查重複記錄值負面和正面在SQL服務器

例子:

這是我的表

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

但是這表我有兩個ID的費用相同。但數值不同的負,正我想STORE此值喜歡

 Expense Id  Amount: 
     1234    567 

     1234   - 567 

在表我Expense IdAmount我有同樣的費用Id和價值卻是正面和負面的。但就是這個反向值。我想排序像這樣所有表中獲取SQL.how中的所有行可以獲取所有行嗎?

+0

編輯您的問題,並將您的表的樣本數據和與樣本數據 – GuidoG

回答

1

你可以加入表格本身的數量相反,忽略不匹配的對。

select a.* from yourTable as a 
left join yourTable as b on a.ExpenseId = b.ExpenseID and a.Amount = -b.Amount 
where b.ExpenseID is not null 
+0

非常感謝你..... – thenna

1

這是做你想做的嗎?

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

匹配的所需輸出正確。我想要更多列字段您的查詢。我如何添加我想ExpenseReportID。我如何添加? – thenna

+0

@thenna。 。 。 (1)這將返回'費用'中的* all *列。 (2)你的問題沒有提及'ExpenseReportID'。如果您有其他問題,請將其作爲另一個問題,而不是發表評論。 –

+0

確定謝謝..... – thenna