我有一张电子交易表。我想要
SELECT symbol, sum(shares), (price * shares) as cost, sum(total) as total
FROM transactions_orig
WHERE type = 'EQ' AND IF(transaction = 'dividend', shares <> 0, ??)
GROUP BY symbol
HAVING sum(shares) > 0
所以我只想在交易类型为股息且份额不等于0的情况下包括该行。这意味着股息已被再投资且未以现金支付。
如果交易等于股息并且股数等于零,则忽略该行。
我敢肯定,我在想这个。.但是我不知道。以下是一些示例数据
1. Dividend EQ LGCY 0 114.00 0.00
2. Credit UNKNOWN 0 9.99 0.00
3. Bought EQ BBEP 100 -1978.99 19.69
4. Dividend EQ T 0 157.50 0.00
5. Dividend EQ T 4.42686 -157.50 0.00
6. Adjustment UNKNOWN 0 -90.00 0.00
我要排除的是第4行(支付股息)的行,但包括第5行(购买更多股份的行)
最佳答案
据我了解您的要求。您需要选择所有交易,但不包括零股股息。
从中格式化where子句
WHERE type = 'EQ' AND IF(transaction = 'dividend', shares <> 0, ??)
至
WHERE type = 'EQ' AND ((transaction = 'dividend' and shares <> 0) OR transaction <> 'dividend')
关于mysql - SQL如果没有,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22339215/