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股份或出售他們沒有的股票。我從子查詢中得到了太多的錯誤值。我如何解決他的??太多的值錯誤
本身寫的子查詢,看看它返回。如果它返回多於一行,請決定你想要哪一個,然後做點什麼來獲得它。 –