我在SQL中有一个像这样的表:
[
现在,我希望基于2个条件的结果表:
Prev_trans_id应该与transaction_ID相匹配
只有这些条目应该出现在金额金额的mod不相等的地方。
结果表应如下所示:
因此,在结果表中,我不希望Transcation_ID为104的行,因为数量的mod相同。已支付$ 1,并且已退还$ 1。
我是SQL的新手,但我可以做第一部分,但不能做第二部分。这是我第一部分的代码:
select * from sample_table
where prev_trans_id in
(select transaction_id from sample_table)
如果我可以将第二个条件也合并到同一查询中,那将非常有帮助。
答案 0 :(得分:1)
使用JOIN
,而不是IN
SELECT t1.*
FROM sample_table AS t1
JOIN sample_table AS t2
ON t1.prev_trans_id = t2.transaction_id AND t1.amount != -1 * t2.amount
顺便说一句,它不是金额的mod
,而是您要比较的金额的取反。
答案 1 :(得分:1)
select table2.*
from sample_table table1, sample_table table2
where table1.transaction_id = table2.prev_trans_id
and (table1.amount - table2.amount) <> 0