我有一个带有TransactionIDs和TransactionTypes的表。我有2种交易类型(存款和提款),每个交易都有一个交易ID。我需要检索仅归因于存款而不归因于现金支出的交易ID。
这是“交易”表:
public static class MyViewHolder extends RecyclerView.ViewHolder {
// each data item is just a string in this case
public TextView mTextView;
public MyViewHolder(View v) {
super(v);
mTextView = v.findViewById(R.id.my_text_view);
}
}
这是我需要的结果:
TransactionType TransactionID
--------------------------------
Deposit 1234
Cashout 1234
Cashout 12345
Cashout 123456
Deposit 1256
Deposit 12345
Deposit 123456
Deposit 777
有人可以通过提供我所需结果的sql查询来帮助我吗? 预先感谢!
答案 0 :(得分:2)
我会使用NOT EXISTS
:
SELECT t.*
FROM table t
WHERE transactiontType = 'Deposit' AND
NOT EXISTS (SELECT 1 FROM table t1 WHERE t1.transactionid = t.transactionid AND t1.transactiontType <> t.transactiontType);
答案 1 :(得分:1)
在子查询的帮助下尝试:
select transactionId from <table> where transactiontType = 'Deposit'
and transactionId not in
(select transactionId from <table> where transactiontType = 'Cashout');
通过这种方式,您可以使用现金作为交易类型来过滤出交易ID
答案 2 :(得分:0)
使用EXCEPT
返回有存款的transactionId,但有现金的除外:
select transactionId from tablename where transactiontType = 'Deposit'
except
select transactionId from tablename where transactiontType = 'Cashout'