Подзапрос с 2 параметрами в SQL - PullRequest
0 голосов
/ 27 июня 2018

У меня есть таблица в SQL, которая выглядит так:

[Sample Table[1]

Теперь я хочу получить таблицу результатов на основе 2 условий:

  1. Prev_trans_id должен соответствовать транзакции_ID

  2. Должны присутствовать только те записи, где mod значения Amount не равен.

Результирующая таблица должна выглядеть так:

Resultant Table

ТАК, в результирующей таблице я не хочу строки с Transcation_ID как 104, так как мод количества такой же. 1 доллар был выплачен, а 1 доллар возвращен.

Я смог выполнить 1-ю часть, но не смог выполнить 2-ю часть, так как я новичок в SQL. Это мой код для 1-й части:

select * from sample_table
where prev_trans_id in 
        (select transaction_id from sample_table)

Если бы я мог включить 2-е условие, также включенное в тот же запрос, это было бы очень полезно.

Ответы [ 2 ]

0 голосов
/ 27 июня 2018
select table2.*
from sample_table table1, sample_table table2
where table1.transaction_id = table2.prev_trans_id
and (table1.amount - table2.amount) <> 0
0 голосов
/ 27 июня 2018

Используйте 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 от сумм, это отрицание сумм, которые вы хотите сравнить.

...