SELECT t.trade_id, t.share_holder_id, t.broker_id
FROM trades t
INNER JOIN share_holders sh ON t.share_holder_id = sh.share_holder_id
INNER JOIN share_holder_shares shs ON shs.share_holder_id = sh.share_holder_id
WHERE (t.share_amount > 5000 AND shs.amount < 0 OR t.transaction_type = 2)
GROUP BY t.trade_id, t.share_holder_id, t.broker_id
HAVING t.share_amount = (SELECT
SUM(DECODE(transaction_type, 1, share_amount)),
SUM(DECODE(transaction_type, 2, 0 - share_amount))
FROM trades t1
WHERE t.share_id = t1.share_id
AND t.share_holder_id = t1.share_holder_id
AND t.transaction_time < t1.transaction_time
GROUP BY t.share_amount)
ORDER BY t.trade_id, t.share_holder_id, t.broker_id;
我想写一个查询,显示所有股东每笔交易买入或卖出超过50,000股份或出售他们没有的股票。我从子查询中得到了太多的错误值。我如何解决他的??太多的值错误
本身写的子查询,看看它返回。如果它返回多于一行,请决定你想要哪一个,然后做点什么来获得它。 –